当前位置: 首页 > news >正文

CMake的简单示例

一、CMake的介绍

CMake是跨平台的自动化构建系统生成工具,文件是CMakeLists.txt

二、简单的CMake脚本

# CMake最低版本
cmake_minimun_required(VERSION 3.0)
# 工程名称
project(MyProject)
# 头文件路径,对应makefile的-I
include_directories(${PROJECT_SOURCE_DIR}/include)
# 指定路径搜索源文件-方法1
aux_source_directory(${PROJECT_SOURCE_DIR}/src SRC)
# 指定路径搜索源文件-方法2
file(GLOB SRC ${PROJECT_SOURCE_DIR}/src/*.c)
# 设置C++标准
set(CMAKE_CXX_STANDARD 11)
# 指定链接库文件路径(动态+静态)
link_directories(${PROJECT_SOURCE_DIR}/lib)
# 链接静态库
link_libraries(calc)
# 设置生成文件路径
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/build)
# 设置可执行程序
add_executable(app ${SRC})
# 链接动态库
target_link_libraries(calc)
# 设置库文件的存储路径
set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib)
# 生成静态库
add_library(calc STATIC ${SRC})
# 生成动态库
add_library(calc SHARED ${SRC})

三、脚本介绍

  1. PROJECT_SOURCE_DIR表示CMakeLists.txt的路径
  2. 链接动态库时,将target_link_libraries放到add_executable后边

四、其他语法介绍

# STATUS 非重要消息
# FATAL_ERROR 致命错误CMake退出
message([STATUS|WARNING|AUTHOR_WARNING|FATAL_ERROR|SEND_ERROR] "message to display" ...)
# 使用set做变量拼接
set(变量名1 ${变量名1} ${变量名2} ...)
# 使用list做字符串拼接
list(APPEND <list> [<element> ...])
# 使用list做字符串移除
list(REMOVE_ITEM <list> <value> [<value> ...])
# CMake中定义宏
add_definitions(-DDEBUG)
http://www.aitangshan.cn/news/145.html

相关文章:

  • 《乐毅报燕王书》
  • 浅谈C++ const
  • NextJS 02 - 服务端渲染
  • Supervisor安装与使用
  • 假期学习
  • 深入解析:【JavaEE】多线程之Thread类(下)
  • proxmox云镜像安装过程
  • 为什么Moka能留住核心人才?智能继任计划+离职风险预测
  • 文件访问被拒绝。
  • ArcgisPro ArcPy (还未)实现缩放至图层
  • Linux环境 RocketMQ 5.X 三主三从集群部署
  • 从嘉手札2025-8-11
  • android开发将项目升级到target35的解决方法
  • 常见光照范围
  • 无监督训练在NLP中的价值体现
  • HFSS许可证多用户支持
  • 【斯普林格出版、快至见刊后1个月检索】第五届现代教育技术与社会科学国际学术会议(ICMETSS 2025)
  • 8.11
  • 统计出哪个时间段在线人数最多
  • HotSpot虚拟机对象探秘 - Charlie
  • 哨兵卫星 在线查看网站
  • ExpeRepair: Dual-Memory Enhanced LLM-based Repository-Level Program Repair 论文笔记
  • GPT5模型工程重构实践
  • rdx与edx之间的关系
  • SSRF靶场
  • ubuntu上Docker的安装与卸载
  • C++编程2025秋课堂教学
  • 防止NLP模型更新中的性能回退技术解析
  • 1431. 拥有最多糖果的孩子
  • 35页PPT|零售行业自助数据分析方法论:指标体系构建平台集成、会员与商品精细化运营实践