execl("/usr/bin/cc","cc","myprog.c",NULL)


我将此行用于myMainProg中的myprog.c编译器。但是myprog.c具有#include“ math.h”。因此,我必须添加-lm。我怎样才能做到这一点?

最佳答案

(从外壳程序)链接程序的命令应为:

cc myprog.c -o myprog -lm


因此,如果要使用execl从另一个程序编译它,则应使用:

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


编辑:我几乎忘了使用execl()时必须将结尾的NULL参数强制转换为char *

关于c - 如何使用execl()编译包含math.h库的程序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36776189/

10-10 09:43