cMake
发布日期:2021-05-07 20:54:56 浏览次数:24 分类:精选文章

本文共 1506 字,大约阅读时间需要 5 分钟。

一、简介

CMake 是一个跨平台的自动化建构系统,它使用一个名为 CMakeLists.txt 的文件来描述构建过程,可以产生标准的构建文件,如 Unix 的 Makefile 或Windows Visual C++ 的 projects/workspaces 。文件 CMakeLists.txt 需要手工编写,也可以通过编写脚本进行半自动的生成。CMake 提供了比 autoconfig 更简洁的语法。

在 linux 平台下使用 CMake 生成 Makefile 并编译的流程如下:

  • 编写 CmakeLists.txt。
  • 执行命令“cmake PATH”生成 Makefile ( PATH 是 CMakeLists.txt 所在的目录 )。
  • 使用 make 命令进行编译

也可以直接使用cmake生成目标文件

二、cMake常用指令

指令 描述
cmake_minimum_required(version) 设置cmake的最低版本
project(name) 设置项目名称
add_executable(name file) 指定生成的目标文件
aux_source_directory(. DIR_SRCS) 将指定目录下的源文件名称赋值给指定变量
set(key, value) 设置变量
option(<option_variable> " " [NO|OFF]) 为用户提供选项为ON或OFF 的选项。如果未提供初始值,则使用OFF。
configure_file(xxx.in.h xxx.h) 将xxx.in.h中定义的宏输入到xx.h
add_library(name [STATIC | SHARED ] [xx.c] [IMPORTED]) 生成或者导入一个库
set_target_properties(“path”) 指定导入库的路径,配合add_library使用
add_definitions(-DFOO -DBAR …) 添加编译参数
include_directories(dir) 指定查找头文件的路径,相当与makefile中的-I(大写的i)
link_directories(dir) 指定库的地址,相当与makefile中的-L(大写的l)
link_libraries(dir) 指定要加载的库文件,相当makefile中的-l(小写的l)
target_compile_definitions(<tagert> ) 给指定的目标添加编译项
target_include_directories(<tagert> path) 给指定的目标添加查找头文件的路径
install() 安装到指定目录
add_subdirectory(file) 添加一个额外的cmake文件
export 从构建树中导出目标,以供外部项目使用。
configure_package_config_file xxx
write_basic_package_version_file xxx

二、cmake常量

常量 描述
${CMAKE_CURRENT_BINARY_DIR} 当前工程的二进制文件输入路径
${PROJECT_SOURCE_DIR} 当前工程的源码路径
${PROJECT_BINARY_DIR} 当前工程二进制文件路径

三、条件判断

语句 描述
if(NOT DEFINED value) 判断value是否定义,如果没定义则返回true
if(DEFINED value) 判断value是否定义,如果定义则返回true
endif() 结束if语句
上一篇:Spring 与使用STOMP消息
下一篇:Spring 与JMX

发表评论

最新留言

逛到本站,mark一下
[***.202.152.39]2025年04月02日 09时17分34秒