cmake学习笔记
学习网站
cmake官网
https://zhuanlan.zhihu.com/p/534439206
常用命令
判断编译平台
CMake的使用
- 在CMakeLists.txt 文件所在目录执行cmake .,在生成Makefile 后再使用 make 命令编译得到目标文件
- camke命令不区分大小写
- 使用${变量名}获取变量的值
- -G 指定生成器,Ninja生成器适用于所有主要平台,调用了一次生成器后就不能更改生成器,必须删除生成目录,并且必须从头开始生成
cmake .. -G Ninja
常用命令及解释
- cmake_minimum_required 指定运行此配置文件所需要的CMake的最低版本
cmake_minimum_required (VERSION 2.8) - project 参数值是该项目的名称
project(demo) - add_executable 第一个参数为生成的目标名称,后面为源文件的名称,多个源文件用空格隔开
add_executable(demo main.cc) - aux_source_directory(
)该命令会查找指定目录下的所有源文件,然后将结果存进指定变量里面
aux_source_directory(. dir) 将当前目录下的源文件保存到dir中 - add_subdirectory 添加子目录
add_subdirectory(math) 表面当前项目在当前目录下还有源文件子目录 - add_library 将源文件生成目标库文件,第一个参数为目标文件,后面为源文件
add_library(math main.cpp ...) - target_include_directories 指明项目文件的包含目录(-i)
target_include_directories( test5 PRIVATE /usr/include/nlohmann /usr/include/x86_64-linux-gnu/curl) - target_link_directories 指明生成目标文件需要链接的库文件搜索目录(-L)
target_link_directories( test5 PRIVATE /usr/lib) - target_link_libraries 指明生成目标文件需要链接的库文件(-l)
target_link_libraries(demo math)
注意事项
- 在使用find_package()时需要指定搜索的路径
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话