cmake介绍(七)--CMake 构建实例

目录

项目结构

1. CMakeLists.txt 文件

示例 CMakeLists.txt 文件

2. 源代码

main.cpp 文件

utility.hpp 文件

utility.cpp 文件

3. 测试代码

tests/CMakeLists.txt

tests/test.cpp

4. 构建过程

创建构建目录

配置 CMake

构建项目

运行测试(如果启用了测试)

总结


下面我将通过一个具体的 CMake 构建实例来展示如何使用 CMake 来管理一个简单的 C++ 项目。这个示例将包括以下几个部分:

  1. 项目结构
  2. CMakeLists.txt 文件
  3. 源代码
  4. 构建过程

项目结构

假设我们的项目结构如下:

 

深色版本

1MyProject/
2├── CMakeLists.txt
3├── src/
4│   ├── main.cpp
5│   └── utility.cpp
6└── include/
7    └── utility.hpp

1. CMakeLists.txt 文件

首先,我们需要创建一个 CMakeLists.txt 文件来配置项目的构建。这个文件将包含项目的元数据、源文件列表、编译选项等信息。

示例 CMakeLists.txt 文件
 

cmake

深色版本

1cmake_minimum_required(VERSION 3.10) # 设置所需的 CMake 最低版本
2project(MyProject VERSION 1.0 LANGUAGES CXX) # 设置项目名称、版本和使用的语言
3
4# 设置 C++ 标准
5set(CMAKE_CXX_STANDARD 17)
6set(CMAKE_CXX_STANDARD_REQUIRED True)
7
8# 定义源文件列表
9set(SOURCE_FILES
10    src/main.cpp
11    src/utility.cpp
12)
13
14# 创建可执行文件
15add_executable(${PROJECT_NAME} ${SOURCE_FILES})
16
17# 查找并链接 Boost 库(假设需要 Boost)
18find_package(Boost REQUIRED COMPONENTS system filesystem)
19target_link_libraries(${PROJECT_NAME} Boost::system Boost::filesystem)
20
21# 添加测试目标
22enable_testing()
23add_subdirectory(tests) # 将测试子目录添加到构建过程中

2. 源代码

接下来,我们创建源代码文件。

main.cpp 文件
 

cpp

深色版本

1#include <iostream>
2#include "utility.hpp"
3
4int main() {
5    std::cout << "Hello from MyProject v1.0!" << std::endl;
6    utility::printMessage("This is a test message.");
7    return 0;
8}
utility.hpp 文件
 

cpp

深色版本

1#pragma once
2
3namespace utility {
4    void printMessage(const std::string& message);
5}
utility.cpp 文件
 

cpp

深色版本

1#include "utility.hpp"
2#include <iostream>
3
4namespace utility {
5    void printMessage(const std::string& message) {
6        std::cout << message << std::endl;
7    }
8}

3. 测试代码

假设我们有一个简单的测试文件 test.cpptests/ 目录下:

tests/CMakeLists.txt
 

cmake

深色版本

1enable_testing()
2
3add_executable(test tests/test.cpp)
4target_link_libraries(test ${PROJECT_NAME})
5
6add_test(NAME test-command COMMAND test)
tests/test.cpp
 

cpp

深色版本

1#include <gtest/gtest.h>
2#include "utility.hpp"
3
4TEST(UtilityTests, PrintMessage) {
5    // 这里可以使用 GTest 来编写测试用例
6    // 由于 CMakeLists.txt 中已经链接了 main 目标,这里可以直接使用 utility::printMessage
7    utility::printMessage("Test message");
8}

4. 构建过程

现在我们准备好构建项目了。在终端中执行以下命令:

创建构建目录
 

bash

深色版本

1mkdir build
2cd build
配置 CMake
 

bash

深色版本

1cmake ..
构建项目
 

bash

深色版本

1make
运行测试(如果启用了测试)
 

bash

深色版本

1ctest

总结

通过上述步骤,我们可以看到 CMake 如何帮助我们管理一个简单的 C++ 项目。这个例子涵盖了 CMakeLists.txt 文件的基本配置、源代码的组织、构建过程以及测试的集成。这个流程可以扩展到更复杂的项目,只需相应地增加更多的源文件、库、测试等。

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值