2016-04-21 46 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

非常感谢。 –

相关问题