perlcc man page on DragonFly

Man page or keyword search:  
man Server   44335 pages
apropos Keyword Search (all sections)
Output format
DragonFly logo
[printable version]

PERLCC(1)	      User Contributed Perl Documentation	     PERLCC(1)

NAME
       perlcc - generate executables from Perl programs

SYNOPSIS
	   perlcc hello.pl	      # Compiles into executable 'a.out'
	   perlcc -o hello hello.pl   # Compiles into executable 'hello'

	   perlcc -O file.pl	      # Compiles using the optimised CC backend
	   perlcc -O3 file.pl	      # Compiles with C, using -O3 optimizations
	   perlcc -B file.pl	      # Compiles using the bytecode backend
	   perlcc -B -m file.pm	      # Compiles a module to file.pmc

	   perlcc -c file.pl	      # Creates a C file, 'file.c'
	   perlcc -S -o hello file.pl # Keep C file
	   perlcc -c out.c file.pl    # Creates a C file, 'out.c' from 'file'
	   perlcc --staticxs -r -o hello hello.pl # Compiles,links and runs with
				      # XS modules static/dynaloaded

	   perlcc -e 'print q//'      # Compiles a one-liner into 'a.out'
	   perlcc -c -e 'print q//'   # Creates a C file 'a.out.c'

	   perlcc -I /foo hello	      # extra headers for C
	   perlcc -L /foo hello	      # extra libraries for C
	   perlcc --Wb=-Dsp	      # extra perl compiler options
	   perlcc -fno-delete-pkg     # extra perl compiler options
	   perlcc --Wc=-fno-openmp    # extra C compiler options
	   perlcc --Wl=-s	      # extra C linker options

	   perlcc -uIO::Socket	      # force saving IO::Socket
	   perlcc -UB		      # "unuse" B, compile without any B symbols

	   perlcc -r hello	      # compiles 'hello' into 'a.out', runs 'a.out'
	   perlcc -r hello a b c      # compiles 'hello' into 'a.out', runs 'a.out'
				      # with arguments 'a b c'

	   perlcc hello -log c.log    # compiles 'hello' into 'a.out', log into 'c.log'

	   perlcc -h		      # help, only SYNOPSIS
	   perlcc -v2 -h	      # verbose help, also DESCRIPTION and OPTIONS
	   perlcc --version	      # prints internal perlcc and the B-C release version

DESCRIPTION
       perlcc creates standalone executables from Perl programs, using the
       code generators provided by the B module. At present, you may either
       create executable Perl bytecode, using the "-B" option, or generate and
       compile C files using the standard and 'optimised' C backends.

       The code generated in this way is not guaranteed to work. The whole
       codegen suite ("perlcc" included) should be considered very
       experimental. Use for production purposes is strongly discouraged.

OPTIONS
       -LC library directories
	   Adds the given directories to the library search path when C code
	   is passed to your C compiler.

       -IC include directories
	   Adds the given directories to the include file search path when C
	   code is passed to your C compiler; when using the Perl bytecode
	   option, adds the given directories to Perl's include path.

       -o output file name
	   Specifies the file name for the final compiled executable.

	   Without given output file name we use the base of the input file,
	   or with "-e" a.out resp. a.exe and a randomized intermediate C
	   filename.  If the input file is an absolute path on a non-windows
	   system use the basename.

       -c C file name
	   Create C file only; do not compile and link to a standalone binary.

       -e perl code
	   Compile a one-liner, much the same as "perl -e '...'"

       --check
	   Pass -c flag to the backend, prints all backend warnings to STDOUT
	   and exits before generating and compiling code. Similar to perl -c.

       -S  "Keep source".  Do not delete generated C code after compilation.

       -B  Use the Perl bytecode code generator.

       -O  Use the 'optimised' C code generator B::CC. This is more
	   experimental than everything else put together, and the code
	   created is not guaranteed to compile in finite time and memory, or
	   indeed, at all.

       -O1-4
	   Pass the numeric optimisation option to the compiler backend.
	   Shortcut for "-Wb=-On".

	   This does not enforce B::CC.

       -v 0-6
	   Set verbosity of output from 0 to max. 6.

       -r  Run the resulting compiled script after compiling it.

       --log logfile
	   Log the output of compiling to a file rather than to stdout.

       -f<option> or --f=<option>
	   Pass the options to the compiler backend, such as "-fstash" or
	   "-fno-delete-pkg".

       --Wb=options
	   Pass the options to the compiler backend, such as "--Wb=-O2,-v"

       --Wc=options
	   Pass comma-seperated options to cc.

       --Wl=options
	   Pass comma-seperated options to ld.

       -T or -t
	   run the backend using perl -T or -t

       -A  Allow perl options to be passed to the executable first, like -D...

	   Adds "-DALLOW_PERL_OPTIONS" which omits "--" from being added to
	   the options handler.

       -u package
	   Add package(s) to compiler and force linking to it.

       -U package
	   Skip package(s). Do not compile and link the package and its sole
	   dependencies.

       --stash
	   Detect external packages automatically via B::Stash

       --static
	   Link to static libperl.a

       --staticxs
	   Link to static XS if available.  If the XS libs are only available
	   as shared libs link to those ("prelink").

	   Systems without rpath (windows, cygwin) must be extend
	   LD_LIBRARY_PATH/PATH at run-time.  Together with -static, purely
	   static modules and no run-time eval or require this will gain no
	   external dependencies.

       --shared
	   Link to shared libperl

       --sharedxs
	   Link shared XSUBs if the linker supports it. No DynaLoader needed.
	   This will still require the shared XSUB libraries to be installed
	   at the client, modification of @INC in the source is probably
	   required.  (Not yet implemented)

       -m|--sharedlib [Modulename]
	   Create a module, resp. a shared library.  Currently only enabled
	   for Bytecode and CC. (not yet tested)

       --testsuite
	   Tries be nice to Test:: modules, like preallocating the file
	   handles 4 and 5, and munge the output of BEGIN.

	     perlcc -r --testsuite t/harness

       --time
	   Benchmark the different phases c (B::* compilation), cc (cc compile
	   + link), and r (runtime).

       --no-spawn
	   Do not spawn subprocesses for compilation, because broken shells
	   might not be able to kill its children.

perl v5.20.2			  2015-08-30			     PERLCC(1)
[top]

List of man pages available for DragonFly

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net