Go to main content

man pages section 1: User Commands

Exit Print View

Updated: July 2017
 
 

erlc (1)

Name

erlc - Compiler

Synopsis

Please see following description for synopsis

Description

erlc(1)                          User Commands                         erlc(1)



NAME
       erlc - Compiler

DESCRIPTION
       The  erlc  program  provides  a  common way to run all compilers in the
       Erlang system. Depending on the extension of each input file, erlc will
       invoke  the appropriate compiler. Regardless of which compiler is used,
       the same flags are used to provide parameters such as include paths and
       output directory.

       The  current  working  directory, ".", will not be included in the code
       path when running the compiler (to avoid loading Beam  files  from  the
       current  working  directory  that could potentially be in conflict with
       the compiler or Erlang/OTP system used by the compiler).

EXPORTS
       erlc flags file1.ext file2.ext...

              Erlc compiles one or more files.  The  files  must  include  the
              extension,  for example .erl for Erlang source code, or .yrl for
              Yecc source code. Erlc uses the extension to invoke the  correct
              compiler.

GENERALLY USEFUL FLAGS
       The following flags are supported:

         -I directory:
           Instructs the compiler to search for include files in the specified
           directory. When encountering an -include or -include_lib directive,
           the  compiler  searches  for header files in the following directo-
           ries:

           * ".", the current working directory of the file server;

           * the base name of the compiled file;

           * the directories specified using  the  -I  option.  The  directory
             specified last is searched first.

         -o directory:
           The  directory where the compiler should place the output files. If
           not specified, output files will be placed in the  current  working
           directory.

         -Dname:
           Defines a macro.

         -Dname=value:
           Defines  a  macro with the given value. The value can be any Erlang
           term. Depending on the platform, the value may need to be quoted if
           the  shell  itself  interprets  certain  characters. On Unix, terms
           which contain tuples and list must be quoted. Terms  which  contain
           spaces must be quoted on all platforms.

         -Werror:
           Makes all warnings into errors.

         -Wnumber:
           Sets  warning  level  to  number. Default is 1. Use -W0 to turn off
           warnings.

         -W:
           Same as -W1. Default.

         -v:
           Enables verbose output.

         -b output-type:
           Specifies the type of output file. Generally,  output-type  is  the
           same  as  the  file  extension  of  the output file but without the
           period. This option will be ignored by compilers that have a a sin-
           gle output format.

         -smp:
           Compile using the SMP emulator. This is mainly useful for compiling
           native code, which needs to be compiled with the same run-time sys-
           tem that it should be run on.

         -M:
           Produces a Makefile rule to track headers dependencies. The rule is
           sent to stdout. No object file is produced.

         -MF Makefile:
           Like the -M option above, except that the Makefile  is  written  to
           Makefile. No object file is produced.

         -MD:
           Same as -M -MF <File>.Pbeam.

         -MT Target:
           In  conjunction with -M or -MF, change the name of the rule emitted
           to Target.

         -MQ Target:
           Like the -MT  option  above,  except  that  characters  special  to
           make(1) are quoted.

         -MP:
           In  conjunction  with -M or -MF, add a phony target for each depen-
           dency.

         -MG:
           In conjunction with -M or -MF, consider missing headers  as  gener-
           ated files and add them to the dependencies.

         --:
           Signals that no more options will follow. The rest of the arguments
           will be treated as file names, even if they start with hyphens.

         +term:
           A flag starting with a plus ('+') rather than a hyphen will be con-
           verted  to an Erlang term and passed unchanged to the compiler. For
           instance, the export_all option for  the  Erlang  compiler  can  be
           specified as follows:

         erlc +export_all file.erl

           Depending  on  the platform, the value may need to be quoted if the
           shell itself interprets certain characters. On  Unix,  terms  which
           contain  tuples and list must be quoted. Terms which contain spaces
           must be quoted on all platforms.

SPECIAL FLAGS
       The flags in this section are useful in special situations such as  re-
       building the OTP system.

         -pa directory:
           Appends  directory  to  the  front  of the code path in the invoked
           Erlang emulator. This can be used to invoke another  compiler  than
           the default one.

         -pz directory:
           Appends directory to the code path in the invoked Erlang emulator.

SUPPORTED COMPILERS
         .erl:
           Erlang source code. It generates a .beam file.

           The  options -P, -E, and -S are equivalent to +'P', +'E', and +'S',
           except that it is not necessary to include  the  single  quotes  to
           protect them from the shell.

           Supported options: -I, -o, -D, -v, -W, -b.

         .S:
           Erlang assembler source code. It generates a .beam file.

           Supported options: same as for .erl.

         .core:
           Erlang core source code. It generates a .beam file.

           Supported options: same as for .erl.

         .yrl:
           Yecc source code. It generates an .erl file.

           Use  the  -I  option  with the name of a file to use that file as a
           customized prologue file (the includefile option).

           Supported options: -o, -v, -I, -W (see above).

         .mib:
           MIB for SNMP. It generates a .bin file.

           Supported options: -I, -o, -W.

         .bin:
           A compiled MIB for SNMP. It generates a .hrl file.

           Supported options: -o, -v.

         .rel:
           Script file. It generates a boot file.

           Use the -I to name directories to be searched for application files
           (equivalent   to   the   path   in   the   option   list  for  sys-
           tools:make_script/2).

           Supported options: -o.

         .asn1:
           ASN1 file.

           Creates an .erl, .hrl, and .asn1db file from an  .asn1  file.  Also
           compiles  the  .erl  using  the  Erlang  compiler unless the +noobj
           options is given.

           Supported options: -I, -o, -b, -W.

         .idl:
           IC file.

           Runs the IDL compiler.

           Supported options: -I, -o.

ENVIRONMENT VARIABLES
         ERLC_EMULATOR:
           The command for starting the emulator. Default is erl in  the  same
           directory  as  the erlc program itself, or if it doesn't exist, erl
           in any of the directories given in the PATH environment variable.


ATTRIBUTES
       See attributes(5) for descriptions of the following attributes:


       +---------------+------------------+
       |ATTRIBUTE TYPE | ATTRIBUTE VALUE  |
       +---------------+------------------+
       |Availability   | runtime/erlang   |
       +---------------+------------------+
       |Stability      | Uncommitted      |
       +---------------+------------------+
SEE ALSO
       erl(1), compile(3), yecc(3), snmp(3)


NOTES
       This    software    was    built    from    source     available     at
       https://java.net/projects/solaris-userland.    The  original  community
       source     was     downloaded     from      http://www.erlang.org/down-
       load/otp_src_17.5.tar.gz

       Further information about this software can be found on the open source
       community website at http://www.erlang.org/.



Ericsson AB                        erts 6.4                            erlc(1)