cmake学习笔记1--单文件编译(霜之小刀)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lihn1987/article/details/78948450

cmake学习笔记1–单文件编译(霜之小刀)

欢迎转载和引用,若有问题请联系
若有疑问,请联系
Email : [email protected]
QQ:2279557541


本文参考了http://blog.csdn.net/piaoxuelibin/article/details/17535737的文章,在此表示感谢


前言

cmake确实是不得不学了,以前只是为了编译别人的项目,只要知道,cmake -xxxx就把库编出来用就行了,但是现在的项目需要自己写cmake,那么就必须要开始学习了,那么今天就是第一天的学习。

文件以及目录

+test
 |-main.c
 |-CMakeLists.text
 |+build

其中

test             //项目放置的目录
main.c           //源文件
CMakeLists.txt   //cmake的项目必须依赖的文件,用于描述cmake如何运行
build            //用于编译的位置,所有的中间文件都会在该目录下产生,不会“污染源码”

main.c的内容就是最经典的hello word

#include <stdio.h>
int main()
{
    printf("hello");
    return 0;
}

这些源码没啥好解释的

CMake的关键文件CMakeLists.txt

set(SRC_LIST main.c)  
add_executable(hello ${SRC_LIST})

其中
set(SRC_LIST main.c)就是说main.c就是要编译的源文件
add_executable(hello ${SRC_LIST})就是说生成一个exe为hello的源文件。
简单的看下
set就像是一个函数,有两个参数,用空格划分,然后把第二个参数作为值赋值给第一个参数,也就是把main.c作为SRC_LIST的内容。
add_executable也是一个函数,意思是说要添加一个可执行文件,然后可执行文件的源码为SRC_LIST的内容。

如何使用CMake进行编译

1.进入build目录
2.执行cmake ..
3.make

这里解释下

为什么要有个build目录?

其实build目录不是必须的,但是为了让代码文件区域比较“干净”,我们希望编译时候的中间文件不要在源码区域内,所以建了一个专门存放编译文件的目录,编译时都在该目录下进行

cmake ..是什么意思?

cmake ..中的..其实就是制定CMakeLists.txt所在的路径。因为当前路径为build目录下,所以CMakeLists.txt得路径就在上一层目录

不是用cmake编译么,为什么又要make?

其实。。。cmake就是用来生成makefile的
因为。。。makefile真心难写。。。至少我学起来,简单的很容易,复杂点的话,我会崩溃的~

总结

这就是我第一次了解cmake,写了个简单到不能再简单的demo。

猜你喜欢

转载自blog.csdn.net/lihn1987/article/details/78948450