编译C/C++;通过简单脚本编程
我有多个c源文件。我想通过脚本编译它们。我知道我可以通过makefile实现,但我更喜欢简单的脚本 我觉得makefiles太复杂了,所以我正在寻找简单的脚本来编译多个文件,然后在Linux(GNU)中创建一个共享库 我知道如何使用终端编译/构建共享库,所以只想从简单脚本运行我的命令编译C/C++;通过简单脚本编程,c,bash,scripting,compilation,sh,C,Bash,Scripting,Compilation,Sh,我有多个c源文件。我想通过脚本编译它们。我知道我可以通过makefile实现,但我更喜欢简单的脚本 我觉得makefiles太复杂了,所以我正在寻找简单的脚本来编译多个文件,然后在Linux(GNU)中创建一个共享库 我知道如何使用终端编译/构建共享库,所以只想从简单脚本运行我的命令 gcc -c -Wall tbl0.c tbl1.c tbl2.c gcc -shared -Wall -o libtbl.so tbl.c -I. -Wl,-z,defs -L. -lpthread
gcc -c -Wall tbl0.c tbl1.c tbl2.c
gcc -shared -Wall -o libtbl.so tbl.c -I.
-Wl,-z,defs -L. -lpthread -lm -ldl
有什么帮助吗
x.sh
x.sh
所在的目录中键入chmod+x x.sh
/x.sh
运行x.sh
chmod +x script.sh
然后说:
./script.sh
您的脚本应该是:
#!/bin/bash
gcc -c -Wall tbl0.c tbl1.c tbl2.c
gcc -shared -Wall -o libtbl.so tbl.c -I. -Wl,-z,defs -L. -lpthread -lm -ldl
您是否忘记了第二行中的输入文件?对于只有小源文件的项目来说,使用这样的脚本是很好的,并且只有2-4个源文件。一旦你开始破解一个稍大的项目,任何构建系统都会为更快的编译时间付出代价。不仅有make,它确实有一个有趣的语法,还有许多其他的语法。这是你的搜索词。或者,试试scons。@cup:这是我写的,只是更一般。无论如何,目前我也更喜欢烤饼。QMake对于小项目来说非常简单,cmake也可以很好(但也可能非常不实用)。但是,首先查找“buildsystem”。第二个命令是否缺少输入文件?我回答的最后一行:Dalso
#/bin/bash
位于脚本顶部;)@jparthj尝试以root用户身份运行它…或者可能是与/sbin/相关的问题,并且这些问题…可能是编译中的标志应该从另一个路径运行,而不是从#/bin/bash
考虑到您的建议,makefile如何比简单的脚本文件更具优势?
#!/bin/bash
gcc -c -Wall tbl0.c tbl1.c tbl2.c
gcc -shared -Wall -o libtbl.so tbl.c -I. -Wl,-z,defs -L. -lpthread -lm -ldl