GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages


Manual Reference Pages  -  PERLCC (1)

.ds Aq ’

NAME

perlcc - generate executables from Perl programs

CONTENTS

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 <B>veryB> 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 <B>cB> (B::* compilation), <B>ccB> (cc compile + link), and <B>rB> (runtime).
--no-spawn Do not spawn subprocesses for compilation, because broken shells might not be able to kill its children.
Search for    or go to Top of page |  Section 1 |  Main Index


perl v5.20.3 PERLCC (1) 2016-04-03

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.