剛接觸Erlang會按照書上的簡單方式去編譯代碼,這僅適用于簡單且少量工程的編譯方式鬓梅。
c(hello).
erlc hello.erl
erl -noshell -s hello start -s init stop
1谨湘、Emakefile 的重要參數(shù)
?????? 一個完整的項目需要讓編譯自動化悲关,使用make:all/0 僅需要一個簡單的模板即可完成自動編譯的需求。make:all() 會在當(dāng)前目錄下查找一個名為 Emakefile 的編譯配置文件寓辱,來指定編譯的一些配置設(shè)定。
上圖的 [ 'src/*' , 'src/lib/*' ] 指./src和./src/lib 下所有的xx.erl會被拿出來編譯诱鞠。
debug_info 是用來開啟Erlang 調(diào)試器的配置信息航夺。
{i, " include/xx "}??在編譯時崔涂,有些模塊導(dǎo)入了include下的hrl文件,這時就會去include/xx 目錄找相應(yīng)的hrl文件冷蚂。不寫 {i, " include/xx "}也可能編譯能通過蝙茶,只要你在每個要導(dǎo)入hrl文件的模塊上具體到目錄就能通過編譯,例如-include(xx/YYY.hrl)隆夯。不寫 {i, " include/xx "}編譯時别伏,會默認去include目錄找忧额,-include(YYY.hrl) 就會去include目錄下搜索。
{d,?Macro} 是非常重要的配置信息宙址,官網(wǎng)解釋是定義一個Macro的宏,Macro的類型必須是原子大咱,默認值為true, 當(dāng)然也可以通 {d,Macro,Value} 去設(shè)置你想要的值注益。開發(fā)項目時,會有個開發(fā)測試版本以及準備上線的發(fā)行版本厦瓢,測試版本需要DEBUG信息以及斷言等來讓程序更完善啤月,而發(fā)行的時候就不需要這些調(diào)試信息,這時就可以通過?{d,?Macro} 去實現(xiàn)想要的結(jié)果浙垫。
?{outdir, "xx"}? 編譯成功的beam文件存放的目錄郑诺,如果沒有的話,這些beam文件就會存在當(dāng)前目錄辙售。
2飞涂、編譯的流程
未完待續(xù)···