2016-04-21 51 views
-1
execl("/usr/bin/cc","cc","myprog.c",NULL) 

我使用這行代碼編譯myMogProg中的myprog.c。但myprog.c有#include「math.h」。所以我必須添加-lm。我怎樣才能做到這一點?如何使用execl編譯一個包含math.h庫的程序()

+0

'math.h'是一個頭,而不是一個庫。並且不要添加不相關的標籤。 – Olaf

+0

'execl(「/ usr/bin/cc」,「cc」,「myprog.c -lm」,NULL)'? –

回答

1

命令(殼)鏈接你的程序應該是:

cc myprog.c -o myprog -lm 

所以,如果你想使用execl從另一個程序編譯它,你應該使用:

execl("/usr/bin/cc","cc","myprog.c", "-o", "myprog", "-lm", (char *) NULL); 

編輯:在使用execl()時幾乎忘了結尾NULL參數必須轉換爲char *

+0

非常感謝。 –

相關問題