CMake学习1 一个最简单的CMake项目

CMake是目前最常用的跨平台构建系统之一, 本教程是我在学习和工作过程中的笔记整理, 涵盖了 CMake 构建系统的常见问题。1. 一个最简单的CMake项目2. 添加库3. 安装和测试CMake的安装:windows: 下载安装包, 将cmake配置到环境变量macos: 在终端中执行brew install cmake (需要先安装brew)linux: 使用安装包管理软件安装, ubuntu: sudo apt-get install cmake。
摘要由CSDN通过智能技术生成

CMake是目前最常用的跨平台构建系统之一, 本教程是我在学习和工作过程中的笔记整理, 涵盖了 CMake 构建系统的常见问题。

1. 一个最简单的CMake项目

2. 添加库

3. 安装和测试

CMake的安装:

windows: 下载安装包, 将cmake配置到环境变量Download | CMake

macos: 在终端中执行brew install cmake (需要先安装brew)

linux: 使用安装包管理软件安装, ubuntu: sudo apt-get install cmake

CMake的项目文件是CMakeLists.txt

如何来开始一个CMake项目呢? 

首先要了解CMake最基本的语法、命令和变量, 然后使用这些构建一个最简单的CMake项目(仅有一个源代码文件的可执行文件).

1. 编写CMakeLists.txt

在一个最简单的项目,CMakeLists.txt只需要包含三个命令:

cmake_minimum_required(VERSION 3.10)
project(HelloWorld)
add_executable(HelloWorld helloworld.cpp)

注意cmake支持大写、小写和混合大小写命令,但首选小写命令

cmake_minimum_required: 设置CMake最低支持的版本, 确保CMake函数的兼容运行, 必须在项目最顶层目录下的CMakeLists.txt中的最前面声明.

project: 设置项目名, 在cmake_minimum_required()命令之后调用, project命令中还可以设置其他项目级别的信息, 比如编程语言, 版本号, 支持的语言有: c, cxx, csharp, objc, objcxx, swift等.

add_executable: 设置需要编译的源代码文件,并创建可执行文件.

2. 构建和运行

CMake的编译一

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 好的,关于您的问题,我可以回答。 CMake一个跨平台的构建工具,可以帮助开发人员自动化构建过程。在一个包含多个子项目CMake项目中,可以通过以下步骤进行构建: 1. 在主项目目录中创建一个CMakeLists.txt文件,该文件指定了项目的名称、版本号、C++标准等信息,并定义了项目包含的子目录。例如: ``` cmake_minimum_required(VERSION 3.10) project(MyProject VERSION 1.0) set(CMAKE_CXX_STANDARD 11) add_subdirectory(subproject1) add_subdirectory(subproject2) ``` 2. 在每个子目录中,创建一个CMakeLists.txt文件,该文件定义了子项目的名称、源文件、库文件等信息,并指定了如何构建该子项目。例如: ``` add_library(MyLibrary1 mylib1.cpp) add_executable(MyExecutable1 main1.cpp) target_link_libraries(MyExecutable1 MyLibrary1) install(TARGETS MyLibrary1 DESTINATION lib) install(TARGETS MyExecutable1 DESTINATION bin) ``` 3. 运行CMake命令生成构建系统所需的Makefile或其他构建文件。例如: ``` mkdir build cd build cmake .. ``` 4. 使用生成的构建系统文件进行构建。例如: ``` make ``` 这些步骤将构建主项目和所有子项目,生成库文件和可执行文件,并将它们安装到指定的目录中。 希望这个回答对您有所帮助。 ### 回答2: CMake一个开源的跨平台的构建工具,因此可以使用它来编写一个包含若干个子项目CMake项目。下面是一个简单的示例: 假设你的主项目名为MyProject,内部有两个子项目ProjectA和ProjectB。 首先,在MyProject文件夹下创建一个CMakeLists.txt文件,该文件是项目的主要配置文件。 在CMakeLists.txt中,我们可以使用add_subdirectory命令来添加子项目。示例如下: ```cmake cmake_minimum_required(VERSION 3.0) project(MyProject) # 添加子项目ProjectA和ProjectB add_subdirectory(ProjectA) add_subdirectory(ProjectB) ``` 然后,在ProjectA文件夹下创建一个CMakeLists.txt文件,用于配置子项目ProjectA的构建。 在ProjectA的CMakeLists.txt文件中,我们可以定义ProjectA的源文件、包含的头文件以及其他需要的编译选项。示例如下: ```cmake set(ProjectA_SOURCES src/file1.cpp src/file2.cpp ) set(ProjectA_HEADERS include/file1.h include/file2.h ) # 添加ProjectA的源文件和头文件 add_library(ProjectA ${ProjectA_SOURCES} ${ProjectA_HEADERS}) # 设置ProjectA的include目录 target_include_directories(ProjectA PUBLIC include) ``` 最后,在ProjectB文件夹下创建一个CMakeLists.txt文件,用于配置子项目ProjectB的构建。 在ProjectB的CMakeLists.txt文件中,我们可以定义ProjectB的源文件、包含的头文件以及其他需要的编译选项。示例如下: ```cmake set(ProjectB_SOURCES src/file3.cpp src/file4.cpp ) set(ProjectB_HEADERS include/file3.h include/file4.h ) # 添加ProjectB的源文件和头文件 add_library(ProjectB ${ProjectB_SOURCES} ${ProjectB_HEADERS}) # 设置ProjectB的include目录 target_include_directories(ProjectB PUBLIC include) ``` 通过这样的方式,我们就可以使用CMake来构建一个包含若干个子项目项目。每个子项目可以根据自己的需求进行配置和构建,而主项目可以通过add_subdirectory命令来引入这些子项目。这样可以使CMake项目更加模块化和可维护。 ### 回答3: CMake一个跨平台的构建工具,可以用于自动化项目的构建过程。下面是一个示例CMake项目,其中包含了两个子项目。 首先,我们创建一个名为"myproject"的文件夹,作为主项目的根目录。 在根目录下,我们创建一个名为"CMakeLists.txt"的文件,作为整个项目的构建脚本。该文件包含了项目的一些配置信息和构建规则。 根目录下的"CMakeLists.txt"文件内容如下: ``` # 指定项目的最低CMake版本 cmake_minimum_required(VERSION 3.10) # 设置项目名称 project(MyProject) # 添加子项目 add_subdirectory(subproject1) add_subdirectory(subproject2) ``` 接下来,我们在根目录下创建两个子项目文件夹,分别命名为"subproject1"和"subproject2"。 在子项目1的文件夹中,创建一个"CMakeLists.txt"文件,用于配置该子项目的构建规则。 "subproject1/CMakeLists.txt"的内容如下: ``` # 设置子项目名称和源文件 project(Subproject1) add_executable(subproject1 main1.cpp) ``` 在子项目2的文件夹中,同样创建一个"CMakeLists.txt"文件,用于配置该子项目的构建规则。 "subproject2/CMakeLists.txt"的内容如下: ``` # 设置子项目名称和源文件 project(Subproject2) add_executable(subproject2 main2.cpp) ``` 现在我们可以开始构建整个项目了。 首先,在根目录下执行以下命令生成构建配置: ``` mkdir build cd build cmake .. ``` 然后,运行以下命令进行构建: ``` cmake --build . ``` 构建完成后,根目录下的"build"文件夹中将生成主项目可执行文件以及两个子项目的可执行文件。 这就是一个包含多个子项目CMake项目的基本结构和构建流程。在实际项目中,可以根据需要进行更复杂的配置和构建规则的设置。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值