此文为:轻松入门cmake系列教程
首先让我们从最简单的代码入手,先来体验下cmake是如何操作的
编写代码
mycmake$ tree
.
├── CMakeLists.txt
├── main.c
- main.c内容如下:
#include <stdio.h>
int main(void)
{
printf("Hello World\n");
return 0;
}
- CMakeLists.txt
# cmake的最低版本要求是2.8
cmake_minimum_required (VERSION 2.8)
# 设置C++标准为 C++ 11
set(CMAKE_CXX_STANDARD 11)
# 工程名叫demo
project (demo)
# 表示最终要生成的elf文件的名字叫demo ,使用的源文件是main.c
add_executable(demo main.c)
编译运行
1、生成makefile
在终端下切到main.c所在的目录下,然后输入以下命令运行cmake
cmake .
再来看看目录下的文件
可以看到成功生成了Makefile,还有一些cmake运行时自动生成的文件。
2、编译
在终端下输入make并回车
make
可以看到成功生成了可执行文件
3、运行
./demo
运行成功!
PS: 如果想重新生成main,输入make clean
就可以删除main这个elf文件。
理论
CMakeLists.txt
- CMakeLists.txt是应存储所有CMake命令的文件。在文件夹中运行cmake时,它将查找该文件,如果不存在,则cmake会退出并显示错误。
最小 CMake 版本
- 使用 CMake 创建项目时,你可以指定支持的最低版本的 CMake。
cmake_minimum_required (VERSION 2.8)
项目名称
- 一个CMake构建文件可以包括一个项目名称,以便在使用多个项目时更容易引用某些变量。
# 工程名叫demo
project (demo)
# 引用
add_executable(demo main.c)
- project()函数将创建一个值为demo的变量
${PROJECT_NAME}
add_executable(demo main.c)
//等效于
add_executable(${PROJECT_NAME} main.c)
构建可执行文件
- add_executable()命令指定应从指定的源文件(在本示例中为main.cpp)构建可执行文件。
- add_executable()函数的第一个参数是要生成的可执行文件的名称,第二个参数是要编译的源文件的列表。
add_executable(demo main.c)
- 最终生成的不一定要和项目名称相同,比如可以生成叫aaa的可执行文件(不推荐写法)
add_executable(aaa main.c)
- 项目名称和可执行文件名称相同(这也是推荐写法)
# 工程名叫demo
project (demo)
# 表示最终要生成的elf文件的名字叫demo ,使用的源文件是main.cpp
add_executable(${PROJECT_NAME} main.c)
- 在此示例中,project()函数将创建一个值为
$demo
的变量${PROJECT_NAME}
。然后可以将其传递给add_executable()函数以输出“ demo”可执行文件。