erlc
ERLC
命令
ERLC
命令摘要
编译器
描述
该erlc
程序提供了在Erlang系统中运行所有编译器的常用方法。根据每个输入文件的扩展名,erlc
调用相应的编译器。无论使用哪种编译器,都使用相同的标志来提供参数,例如包含路径和输出目录。
"."
运行编译器时,当前工作目录,不包含在代码路径中。这样可避免从当前工作目录加载Beam文件,这些文件可能与编译器或编译器使用的Erlang / OTP系统有冲突。
输出
erlc flags file1.ext file2.ext...
编译一个或多个文件。这些文件必须包含扩展名,例如.erl
Erlang源代码或.yrl
Yecc源代码。Erlc
使用扩展来调用正确的编译器。
一般有用的标志
支持下列标志:
-I <Directory>
命令编译器搜索Directory
.遇到-include
或-include_lib
指令时,编译器将在以下目录中搜索头文件:
"."
文件服务器的当前工作目录。
- 已编译文件的基本名称。
- 使用选项指定的目录。
-I
;首先搜索最后指定的目录。
-o <Directory>
编译器放置输出文件的目录。默认为当前工作目录。
-D<Name>
定义一个宏。
-D<Name>=<Value>
定义具有指定值的宏。值可以是任何Erlang项。根据平台的不同,如果shell本身解释某些字符,则可能需要引用该值。在Unix上,必须引用包含元组和列表的术语。包含空格的术语必须在所有平台上引用。
-W<Error>
将所有警告都变成错误。
-W<Number>
将警告级别设置为Number
.默认为1
.若要关闭警告,请使用-W0
...
-W
同-W1
...。默认。
-v
启用详细输出。
-b <Output_type>
指定输出文件的类型。Output_type
与输出文件的文件扩展名相同,但没有句号。此选项被具有单一输出格式的编译器忽略。
-smp
使用SMP仿真器进行编译。这对于编译本机代码是非常有用的,它必须使用与要运行的相同的运行时系统进行编译。
-M
生成Makefile规则以跟踪标头依赖关系。规则被发送到stdout
。没有生成目标文件。
-MF <Makefile>
作为选项-M
,除了写入Makefile
Makefile
。没有生成目标文件。
-MD
同-M -MF <File>.Pbeam...
-MT <Target>
结合选项-M
或-MF
,将发出的规则的名称更改为Target
...
-MQ <Target>
作为选项-MT
,除了特殊的字符make/1
被引用。
-MP
结合选项-M
或-MF
,为每个依赖项添加一个假目标。
-MG
结合选项-M
或-MF
,将丢失的标头视为生成的文件,并将它们添加到依赖项中。
--
信号表明不会有更多的选择。其余的参数被视为文件名,即使它们以连字符开头。
+<Term>
一个以plus(+
)而不是连字符开头的标志被转换成Erlang术语并且不变地传递给编译器。例如,export_all
Erlang编译器的选项可以如下指定:
erlc +export_all file.erl
根据平台的不同,如果shell本身解释某些字符,则可能需要引用该值。在Unix上,必须引用包含元组和列表的术语。包含空格的术语必须在所有平台上引用。
特殊标志
下列标志在特殊情况下非常有用,例如重建OTP系统:
-pa <Directory>
附加Directory
到被调用的Erlang模拟器的代码路径前面。这可以用于调用另一个编译器,而不是默认编译器。
-pz <Directory>
附加Directory
被调用的Erlang模拟器中的代码路径。
支持的编译器
支持下列编译器:
.erl
Erlang源代码。它生成一个.beam
档案。
选项-P
,-E
和-S
等同于+'P'
,+'E'
和+'S'
,除了没有必要包含单引号来保护它们不受shell限制。
支持的选项:-I
,-o
,-D
,-v
,-W
,-b
。
.S
Erlang汇编程序源代码。它生成一个.beam
档案。
支持的选项:与.erl
...
.core
Erlang核心源代码。它生成一个.beam
档案。
支持的选项:与.erl
...
.yrl
YECC源代码。它生成一个.erl
档案。
使用-I
带有文件名称的选项将该文件用作自定义序言文件(选项includefile
)。
支持的选项:-o
,-v
,-I
,-W
。
.mib
用于SNMP的MIB。它生成一个.bin
档案。
支持的选项:-I
,-o
,-W
。
.bin
为SNMP编译的MIB。它生成一个.hrl
档案。
支持的选项:-o
,-v
。
.rel
脚本文件。它生成一个引导文件。
使用选项-I
命名要搜索应用程序文件的目录(相当于path
选项列表中的systools:make_script/2
)。
支持的备选方案:-o
...
.asn1
ASN1文件。它从文件创建一个.erl
,.hrl
和文件。还编译使用Erlang编译器,除非指定了选项。.asn1db.asn1.erl+noobj
支持的选项:-I
,-o
,-b
,-W
。
.idl
IC文件。它运行IDL编译器。
支持的选项:-I
,-o
。
环境变量
ERLC_EMULATOR
用于启动模拟器的命令。默认erl
与erlc
程序本身在同一目录中,或者如果它不存在,erl
则在环境变量中指定的任何目录中PATH
。
另见
erl(1)
,compile(3)
,yecc(3)
,snmp(3)