这篇文章只要介绍在linux下如何编译c语言,包括用命令编译c语言,使用makefile自动编译,以及如何使用cmake工具生成makefile文件。
在linux下用命令编译c语言
编译单个文件test.c的流程如下
touch testc.c
vim testc.c #敲好代码保存退出
gcc testc.c #会得到a.out文件
./a.out #就能运行
如果要重命名编译好的文件,可以加入参数-o
gcc -o testc testc.c
多文件编译:
如果我们有多个文件,比如:
main.c
testFunc1.h
testFunc1.c
testFunc2.h
testFunc2.c
我们要编译它,可以这样子:
$ gcc -c main.c
$ gcc -c testFunc1.c
$ gcc -c testFunc2.c
$ gcc -o main main.o testFunc1.o testFunc2.o
也可以把gcc的命令换成cc(实际上cc可以指定编译工具为gcc),-c是只编译不链接,把单个文件编译成中间文件.o,然后-o是把最后得到的文件重命名,最后一条命令就是链接中间文件生成可执行文件并把最后生成的可执行文件重命名为main。
关于cc的使用参数参考这篇文章点击打开链接
使用makefile实现自动编译
可以看到,上面这么编译c,如果有文件修改,要重新编译是很麻烦的。所以我们有了make工具,它能方便的帮助我们实现自动编译。
我们的规则是:
1)如果这个工程没有编译过,那么我们的所有C文件都要编译并被链接。