• 适用于中大型C++工程的CMake模板1


    在C++项目开发中,CMake是一种广泛使用的构建工具,它可以帮助我们管理和构建中大型项目。下面是一个适用于中大型C++工程的CMake模板。

    项目结构

    首先,我们需要定义一个清晰的项目结构。一个典型的中大型C++项目可能包括以下目录和文件:

    /my_project
        /src
            main.cpp
            /module1
                file1.cpp
                file1.h
            /module2
                file2.cpp
                file2.h
        /include
            /module1
                file1.h
            /module2
                file2.h
        /tests
            test1.cpp
            test2.cpp
        CMakeLists.txt
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    在这个结构中,src目录包含所有的源代码文件,include目录包含所有的头文件,tests目录包含所有的测试文件。

    CMakeLists.txt

    接下来,我们需要创建一个CMakeLists.txt文件来定义构建规则。以下是一个基本的CMake模板:

    cmake_minimum_required(VERSION 3.10)
    project(my_project)
    
    set(CMAKE_CXX_STANDARD 14)
    
    include_directories(include)
    
    file(GLOB_RECURSE SOURCES "src/*.cpp")
    
    add_executable(my_project ${SOURCES})
    
    enable_testing()
    add_subdirectory(tests)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    在这个模板中,我们首先定义了CMake的最低版本要求和项目名称。然后,我们设置了C++的标准为C++14,并包含了所有的头文件目录。接着,我们使用file命令和GLOB_RECURSE选项来查找src目录下的所有.cpp文件,并将它们添加到SOURCES变量中。最后,我们使用add_executable命令来创建一个可执行文件,并使用SOURCES变量作为源代码文件。我们还启用了测试,并添加了tests目录。

  • 相关阅读:
    OpenAI Kubernetes 相关博文读后笔记
    Vue | Vue.js 组件化 - 组件间通信
    期货开户是否有资金门槛?
    数据结构——单链表(定义)
    记录linux清理空间的步骤
    Nacos注册中心和服务消费方式
    电脑一键重装系统后如何打开事件查看器
    Arduino开发实例-DIY风速测量及显示
    联想用万全智算,画出中国AI的山脊
    JDBC测试
  • 原文地址:https://blog.csdn.net/u013870094/article/details/134488921