当前位置:网站首页 > 云服务教程 > 正文

cmake 菜鸟教程(cmake菜鸟教程官网)



CMakeLists.txt 是 CMake 的配置文件,用于定义项目的构建规则、依赖关系、编译选项等。

每个 CMake 项目通常都有一个或多个 CMakeLists.txt 文件。

CMakeLists.txt 文件使用一系列的 CMake 指令来描述构建过程。常见的指令包括:

1、指定 CMake 的最低版本要求:

 cmake_minimum_required(VERSION <version>)

例如:

 cmake_minimum_required(VERSION 3.10)

2、定义项目的名称和使用的编程语言:

 project(<project_name> [<language>...])

例如:

 project(MyProject CXX)

3、指定要生成的可执行文件和其源文件:

 add_executable(<target> <source_files>...)

例如:

 add_executable(MyExecutable main.cpp other_file.cpp)

4、创建一个库(静态库或动态库)及其源文件:

 add_library(<target> <source_files>...)

例如:

 add_library(MyLibrary STATIC library.cpp)

5、链接目标文件与其他库:

 target_link_libraries(<target> <libraries>...)

例如:

 target_link_libraries(MyExecutable MyLibrary)

6、添加头文件搜索路径:

include_directories(<dirs>...)

例如:

 include_directories(${PROJECT_SOURCE_DIR}/include)

7、设置变量的值:

 set(<variable> <value>...)

例如:

 set(CMAKE_CXX_STANDARD 11)

8、设置目标属性:

 target_include_directories(TARGET target_name [BEFORE | AFTER] [SYSTEM] [PUBLIC | PRIVATE | INTERFACE] [items1...])

例如:

target_include_directories(MyExecutable PRIVATE ${PROJECT_SOURCE_DIR}/include)

9、安装规则:

 install(TARGETS target1 [target2 ...] [RUNTIME DESTINATION dir] [LIBRARY DESTINATION dir] [ARCHIVE DESTINATION dir] [INCLUDES DESTINATION [dir ...]] [PRIVATE_HEADER DESTINATION dir] [PUBLIC_HEADER DESTINATION dir])

例如:

 install(TARGETS MyExecutable RUNTIME DESTINATION bin)

10、条件语句 (if, elseif, else, endif 命令)

if(expression) # Commands elseif(expression) # Commands else() # Commands endif()

例如:

if(CMAKE_BUILD_TYPE STREQUAL "Debug") message("Debug build") endif()

11、自定义命令 (add_custom_command 命令):

add_custom_command( TARGET target PRE_BUILD | PRE_LINK | POST_BUILD COMMAND command1 [ARGS] [WORKING_DIRECTORY dir] [COMMAND command2 [ARGS]] [DEPENDS [depend1 [depend2 ...]]] [COMMENT comment] [VERBATIM] )

例如:

add_custom_command( TARGET MyExecutable POST_BUILD COMMAND ${CMAKE_COMMAND} -E echo "Build completed." )

一个简单的 CMakeLists.txt 文件示例:


CMake 使用变量来存储和传递信息,这些变量可以在 CMakeLists.txt 文件中定义和使用。

变量可以分为普通变量和缓存变量。

定义变量:

 set(MY_VAR "Hello World")

使用变量:

 message(STATUS "Variable MY_VAR is ${MY_VAR}")

缓存变量存储在 CMake 的缓存文件中,用户可以在 CMake 配置时修改这些值。缓存变量通常用于用户输入的设置,例如编译选项和路径。

定义缓存变量:

 set(MY_CACHE_VAR "DefaultValue" CACHE STRING "A cache variable")

使用缓存变量:

 message(STATUS "Cache variable MY_CACHE_VAR is ${MY_CACHE_VAR}")

CMake 可以通过 指令自动检测和配置外部库和包。

常用于查找系统安装的库或第三方库。

基本用法:

 find_package(Boost REQUIRED)

指定版本:

 find_package(Boost 1.70 REQUIRED)

查找库并指定路径:

 find_package(OpenCV REQUIRED PATHS /path/to/opencv)

使用查找到的库:

 target_link_libraries(MyExecutable Boost::Boost)

设置包含目录和链接目录:

 include_directories(${Boost_INCLUDE_DIRS}) link_directories(${Boost_LIBRARY_DIRS})

假设你想在项目中使用 Boost 库,CMakeLists.txt 文件可能如下所示:

通过上述内容,用户可以了解 CMakeLists.txt 文件的基本结构和常用指令,掌握如何定义和使用变量,查找和配置外部库,从而能够有效地使用 CMake 管理项目构建过程。

到此这篇cmake 菜鸟教程(cmake菜鸟教程官网)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • 启动盘u盘制作教程图解(启动u盘制作方法及注意事项)2025-08-02 12:27:08
  • autohotkey怎么用(autohotkey按键教程)2025-08-02 12:27:08
  • u启动制作u盘启动详细教程(u启动怎么制作u盘)2025-08-02 12:27:08
  • yum命令安装软件教程(yum 安装程序)2025-08-02 12:27:08
  • falsh教程(flash教程课本)2025-08-02 12:27:08
  • ad20铺铜教程(ad18铺铜教程)2025-08-02 12:27:08
  • chrony服务器配置 阿里云时间服务器(win7时间服务器改为阿里云)2025-08-02 12:27:08
  • cmake视频教程(cmake 中文教程)2025-08-02 12:27:08
  • awvs使用教程kali(awvs使用教程)2025-08-02 12:27:08
  • win11虚拟机安装教程(用虚拟机安装win11)2025-08-02 12:27:08
  • 全屏图片