前言
参考教材为iRobot战队中学长给的文档:CMake Practice_backu
此帖子到P14
一、cmake的构建
内部构建
1、在mytest文件夹(我们放本次项目的文件夹)创建CMakeLists.txt
2、对于简单的helloworld程序为例
PROJECT(HELLO)
SET(SRC_LIST main.c)
MESSAGE(STATUS "This is BINARY dir " ${HELLO_BINARY_DIR})
MESSAGE(STATUS "This is SOURCE dir " ${HELLO_SOURCE_DIR})
ADD_EXECUTABLE(hello ${SRC_LIST})
指令大小写无关,参数和变量大小写相关。但建议指令都大写
第一句:PROJECT指定工程的名称
第二句:SET用于定义变量,此处把SRC_LIST定义成了main.c,因此在第五句,以SRC_LIST为源文件表创建了可执行文件hello
暂时忽略三四句。
***${}***是cmake中变量引用的方式(也有例外)
ps: 工程名HELLO和可执行文件名hello没有任何关系
3、开始构建
在终端输入
cmake .
再输入
make
若正常,则构建完毕
4、运行可执行文件
./hello
外部构建
优点:生成的中间文件被保存在一个文件夹里。
1、建立CMakeLists.txt并编写
2、新建一个子文件夹,名字为build,在build文件夹中打开终端,运行cmake ..
(…表示父目录,若在其他地方建的build文件夹,那么输入绝对路径定向到CMakeLists.txt所在的文件夹即可)
3、再运行make
即可
注意,这样生成的可执行文件在build文件夹中。
二、让HelloWorld更像一个工程
1、在mytest文件夹中建立一个子文件夹src和build
2、任何一个子目录都要有CMakeLists.txt (下面简称CM)
3、mytest里的CM文档填写
PROJECT(HELLO)
ADD_SUBDIRECTORY(src bin)
src表示源文件所在的地址,bin表示生成的可执行文件放在build文件夹下的bin文件夹中
4、在src里的CM填写
ADD_EXECUTABLE(hello main.c)
5、在build目录中,
cmake ..
make
可执行文件会在mytest/build/bin中