erlang的makefile編譯問題

2021-06-28 03:44:07 字數 1130 閱讀 8607

最近一直在看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 模組名字 加 即可 模組...