剛接觸Erlang會(huì)按照書上的簡(jiǎn)單方式去編譯代碼,這僅適用于簡(jiǎn)單且少量工程的編譯方式。
c(hello).
erlc hello.erl
erl -noshell -s hello start -s init stop
1、Emakefile 的重要參數(shù)
?????? 一個(gè)完整的項(xiàng)目需要讓編譯自動(dòng)化,使用make:all/0 僅需要一個(gè)簡(jiǎn)單的模板即可完成自動(dòng)編譯的需求。make:all() 會(huì)在當(dāng)前目錄下查找一個(gè)名為 Emakefile 的編譯配置文件,來(lái)指定編譯的一些配置設(shè)定。

上圖的 [ 'src/*' , 'src/lib/*' ] 指./src和./src/lib 下所有的xx.erl會(huì)被拿出來(lái)編譯。
debug_info 是用來(lái)開(kāi)啟Erlang 調(diào)試器的配置信息。
{i, " include/xx "}??在編譯時(shí),有些模塊導(dǎo)入了include下的hrl文件,這時(shí)就會(huì)去include/xx 目錄找相應(yīng)的hrl文件。不寫 {i, " include/xx "}也可能編譯能通過(guò),只要你在每個(gè)要導(dǎo)入hrl文件的模塊上具體到目錄就能通過(guò)編譯,例如-include(xx/YYY.hrl)。不寫 {i, " include/xx "}編譯時(shí),會(huì)默認(rèn)去include目錄找,-include(YYY.hrl) 就會(huì)去include目錄下搜索。
{d,?Macro} 是非常重要的配置信息,官網(wǎng)解釋是定義一個(gè)Macro的宏,Macro的類型必須是原子,默認(rèn)值為true, 當(dāng)然也可以通 {d,Macro,Value} 去設(shè)置你想要的值。開(kāi)發(fā)項(xiàng)目時(shí),會(huì)有個(gè)開(kāi)發(fā)測(cè)試版本以及準(zhǔn)備上線的發(fā)行版本,測(cè)試版本需要DEBUG信息以及斷言等來(lái)讓程序更完善,而發(fā)行的時(shí)候就不需要這些調(diào)試信息,這時(shí)就可以通過(guò)?{d,?Macro} 去實(shí)現(xiàn)想要的結(jié)果。
?{outdir, "xx"}? 編譯成功的beam文件存放的目錄,如果沒(méi)有的話,這些beam文件就會(huì)存在當(dāng)前目錄。
2、編譯的流程
未完待續(xù)···