Ubuntu 下cmake编译C程序简单流程
效果:将文件夹内的 demo.c 编译为可执行二进制文件
新建一个项目文件夹,里面新建两个文件 CMakeLists.txt demo.c
demo.c
#include <stdio.h>
int main(){
printf("helloworld!");
return 0;
}
CMakeLists.txt
cmake_minimum_required(VERSION 3.10)
#project name
PROJECT(demo_cmake)
#add executable file
ADD_EXECUTABLE(demo demo.c)
其中最重要的就是 ADD_EXECUTABLE(demo demo.c) 意思是将 demo.c 编译为 demo 可执行文件
接着在当前目录下执行
cmake .
make
编译完成后文件结构如下:
接着terminal 执行 demo 可执行文件即可看到程序运行结果。
hardy@hardy-virtual-machine:~/project/C/demo_c$ ./demo
helloworld!hardy@hardy-virtual-machine:~/project/C/demo_c$
2020/12/23 更新
编写更简单的makeflie 以及gcc编译;
makeflie
all: a
a:a.c
gcc -o a a.c
clean:
rm -rf a
终端执行 make 进行增量编译(若代码没有变化就不编译 make: Nothing to be done for ‘all’.
),还可以使用变量指定编译器和参数,使用 $(var) 代替。
其中 第一行的all对应的是自动编译的标签,没加入到all的例如clean可以手动make clean执行;标签语句的冒号跟着的是依赖,make会检测该标签的依赖文件是否发生变化,以及使用tab缩进的shell命令,可以是gcc编译或cd、pwd等命令。
小结
cmake 的编译流程比较简单,主要就是cmake 的 CMakeLists.txt文件编写,至少要看懂,知道修改编译需要修改的相关文件路径。