Cmake学习笔记

文章目录

  • 前言
  • 一、cmake的构建
    • 内部构建
    • 外部构建
  • 二、让HelloWorld更像一个工程

前言

参考教材为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中

你可能感兴趣的:(学习,笔记,windows)