Cmake的使用

简介: CMake的安装和使用,通过一个简单的项目示例,展示了如何编写CMakeLists.txt文件和main.cpp程序,以及如何通过CMake生成构建文件并编译项目。

第一步:安装Cmake

双击点开即可,无脑下一步。

第二步:编写一个简单的Cmake项目

CMakeLists.txt文件

# 设置最低的 CMake 版本要求
cmake_minimum_required(VERSION 3.10)

# 设置项目名称
project(MyProject)

# 添加可执行文件
add_executable(my_executable main.cpp)

CMakeLists.txt是CMake构建系统的配置文件,用于定义项目的构建规则和依赖关系。它通常位于项目的根目录中,包含了一系列的指令和设置,用于指导CMake如何构建项目。

以下是CMakeLists.txt文件中一些关键部分的详细讲解:

  1. cmake_minimum_required: 指定项目所需的最低CMake版本。这确保了只有满足最低版本的CMake才能正确构建项目。
  2. project: 定义项目的名称和版本。这个命令会设置一些变量,如PROJECT_NAMEPROJECT_VERSION,这些变量可以在后续的CMakeLists.txt中使用。
  3. add_executable/add_library: 分别用于添加可执行文件和库文件的目标。需要指定目标名称和源文件列表。例如,add_executable(myapp main.cpp)会创建一个名为myapp的可执行文件,其源文件为main.cpp
  4. target_link_libraries: 用于指定目标(可执行文件或库)所依赖的其他库。例如,target_link_libraries(myapp mylib)表示myapp依赖于mylib库。
  5. include_directories: 用于添加头文件搜索路径。这样,在编译时,编译器就知道在哪里查找头文件。
  6. link_directories: 用于添加库文件搜索路径。这样,在链接时,链接器就知道在哪里查找库文件。
  7. find_package: 用于查找并加载系统中已安装的包。这对于使用第三方库非常有用。
  8. set: 用于设置变量。可以用来定义各种路径、标志和其他配置选项。
  9. message: 用于在构建过程中输出信息,有助于调试和了解构建过程。
  10. install: 用于指定安装目标时应该包含哪些文件和目录,以及它们应该被安装到什么位置。
  11. enable_testingadd_test: 用于添加测试用例,并在构建过程中运行这些测试。
  12. catkin_package (针对ROS项目): 用于声明ROS消息文件并将其转换为特定编程语言所需的功能包,以及catkin工程项目文件的编译链接配置。

总的来说,CMakeLists.txt是CMake构建系统的核心,通过编写CMakeLists.txt文件,开发者可以方便地管理项目的构建过程,实现跨平台的构建。在使用CMake时,通常需要先运行cmake命令来生成对应平台的构建文件(如Makefile),然后使用make命令来编译源码生成可执行程序或共享库。

main.cpp

#include <iostream>
#include <stdio.h>
int main() {
    std::cout << "Hello, CMake!" << std::endl;
    printf("sb");
    return 0;
}

然后打开cmd窗口,直接cmake .即可

目录
相关文章
|
6月前
|
存储 自然语言处理 Linux
CMake基础(1)初识CMake
CMake基础(1)初识CMake
53 0
CMake中使用vcpkg
vcpkg是一个微软开源的C++包管理器。 在以前的开发中,如果在项目中需要使用某个开源库,例如qt,我们需要取官网下载qt的源码,然后构建得到对应的库,然后在项目中链接这个库。对于自己熟悉的库还好说,若是不熟悉的库,如何拉取源码?如何构建?如何在项目中引用?等等这些问题通常会困扰我们,然而,大多数情况下,我们只是使用这个开源库,并不需要关心这个库的构建和编译等问题。如此,在以前的开发过程中,往往会花费不少的时间在引入开源库上。 vcpkg是在背景下开发出来的,通过vcpkg,我们可以在项目中很方便的引入开源库,不用再关心拉取代码、构建开源库的这些事情。 CMake构建的项目中引入开源库
191 0
|
C++
cmake安装与使用
cmake安装与使用
330 0
cmake安装与使用
|
Linux 异构计算
|
C++
CMake教程6:CMake的一些实用小技巧
CMake教程6:CMake的一些实用小技巧
238 0
|
Ubuntu
CMake
CMake
150 0
|
消息中间件 关系型数据库 C语言
|
Java Linux C语言
|
Linux 前端开发 关系型数据库