CMake构建项目——一个简单实例

CMake构建项目——一个简单实例

1 cmake简介

cmake是一个跨平台的构建工具,它可以根据不同的平台生成不同的构建脚本,如Makefile、Visual Studio项目文件等。cmake可以自动生成项目文件,不需要手动编写项目文件,提高了开发效率。

2 CMakeLists.txt文件

CMakeLists.txt文件是CMake的配置文件,它定义了项目的名称、版本、依赖库、编译选项等信息。CMakeLists.txt文件的内容就是CMake的命令,这些命令告诉CMake如何构建项目。下面通过一个例子来介绍CMakeLists.txt文件的编写:

3 CMakeLists.txt文件编写实例

这是一个冒泡排序项目,包含一个主程序源文件和一个函数源文件,项目文件结构树如下:

sort
├── CMakeLists.txt
├── include
│   └── bubbleSort.h
├── src
|   ├── main.cpp
|   └── bubbleSort.cpp
├── build

对应的CMakeLists.txt文件内容如下:

project(sort)

cmake_minimum_required(VERSION 3.10)
set (CMAKE_CXX_STANDARD 11)

INCLUDE_DIRECTORIES(include)

AUX_SOURCE_DIRECTORY(src SRC)
FILE(GLOB_RECURSE HEAD include/*.h)

source_group(SOURCE\ FILES FILES ${SRC})
source_group(HEADER\ FILES FILES ${HEAD})

ADD_EXECUTABLE(sort ${SRC} ${HEAD})
  1. 首先project(sort)创建了一个名为sort的项目;
  2. cmake_minimum_required(VERSION 3.10)指定了CMake的最低版本;
  3. 然后set (CMAKE_CXX_STANDARD 11)指定了C++的标准为11;
  4. INCLUDE_DIRECTORIES(include)指定了头文件的路径。它将include目录添加到包含路径中,使编译器能够找到项目中的头文件;
  5. AUX_SOURCE_DIRECTORY(src SRC)指定了源文件的路径。它收集src目录下的所有源文件,并将它们存储在变量SRC中;
  6. FILE(GLOB_RECURSE HEAD include/*.h)这里面的GLOB_RECURSE表示递归查找,include/*.h表示在include目录下查找所有以.h结尾的文件,并将它们存储在变量HEAD中;
  7. source_group(SOURCE\ FILES FILES ${SRC})source_group(HEADER\ FILES FILES ${HEAD})是将源文件和头文件分别放在不同的文件夹中,方便查看。
  8. 最后ADD_EXECUTABLE(sort ${SRC} ${HEAD})使用收集到的源文件和头文件创建一个名为 sort 的可执行文件。

4 编译运行

接下来就可以在build文件夹下使用cmake ..构建项目了。然后使用make编译项目。编译完成后,会在build文件夹下生成可执行文件sort,输入./sort就可以直接运行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值