最近一直在看erlang程式設計,但是一直卡在第十五章的makefile那裡(make和gcc菜鳥一枚)。弄了幾天終於把問題解決了。
先感謝一下這篇部落格「對在erlang中的makefile一些解釋」 。下面是解釋及問題解決:
由於作者在《erlang程式設計》書中提供的makefile是在mac os x系統中測試的,並沒有linux版本,所以就想著自己搗鼓乙個makefile出來。但由於之前都沒有使用makefile編譯過程式,所以就花了一些時間去學習make。先上我修改後的makefile檔案:
.suffixes: .erl .beam
.erl.beam:
erlc -w $<
mods = example1
all: $ example1 example1_drv.so
example1: example1.c erl_comm.c example1_driver.c
gcc -o example1 example1.c erl_comm.c example1_driver.c
example1_drv.so: example1.c
gcc -i /opt/erlang/lib/erlang/usr/include\-o example1_drv.so example1.c example1_driver.c erl_comm.c
clean:
rm example1 example1_drv.so *.beam
其中,.suffixes宣告要用到的或者將生成的檔案的型別;.erl.beam是指所有.beam檔案都是依賴於.erl檔案的,下一行的命令就是把所有.erl檔案編譯成.beam檔案;mods是定義的變數;clean是刪除編譯生成的各種檔案。
與原來的makefile檔案相比,主要修改了兩處地方:把mods變數的example1_lib, unit_test刪掉,修改example1_drv.so中的gcc命令。而example1_drv.so中的/opt/erlang/lib/erlang/usr/include是我電腦上安裝erlang的檔案位置。改完之後,使用命令make all就編譯成功了。
雖然花了比較多的時間,但學習了make和makefile,算是有所收穫。繼續加油!
Erlang的makefile 小例子
概要 erlang程式設計 第六章中的例子。hello.erl module hello export start 0 start io format hello world n shop.erl module shop export cost 1 cost oranges 5 cost news ...
Erlang模組與Erlang程式的執行方法
一 模組與程式檔案 erlang是一種函式式程式語言,當我們要完成乙個專案時,總不可能把所有的函式都定義在乙個程式檔案中,為了開發和維護方便,通常按邏輯功能劃分將其分別分散在多個程式檔案中。每個erlang程式檔案就是乙個模組,檔名的副檔名部分為.erl,模組的名稱必須與檔名稱中的主檔名完全相同 不...
Erlang 學習小記 erlang 表,
cmd 控制台 輸入 erl 可以進入erl的shell 就可以 使用erlang 語法 進行控制 erl每個語句結束用 結尾 運算算數運算和其他語言基本一樣 在控制台 輸出 1 2加個 再按回車 即可得到輸出結果 模組中如果想要呼叫其他模組 需要在頭部 新增 module 模組名字 加 即可 模組...