首页 / 更多教程 / CMake基础语法及应用
CMake基础语法及应用
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了CMake基础语法及应用,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2405字,纯文字阅读大概需要4分钟。
内容图文
一、CMakeFiles文件书写语法
1. CMake中条件判断语句
if(<constant>)
...
else()
...
endif()
当 constant
为 1/ON/YES/TRUE/Y/Non-zero
时判别为真;
当 constant
为 0/OFF/NO/FALSE/N/IGNORE/NOTFOUND
或者为空字符串或后缀为 -NOTFOUND
时判断为假。
大小写敏感,当不是上述列举出来的这些常量时,作为变量对待。
2. 设置编译选项
CMake 可以通过 CMAKE_BUILD_TYPE
来对编译方式进行控制,使产生 Debug
类型的可执行程序或者 Release
类型的可执行程序,方便我们进行调试或者优化。
SET(CMAKE_BUILD_TYPE "MYTYPE")
MYTYPE
可以选择的类型有:空, Debug, Release, RelWithDebInfo, MinSizeRel
。
3. 打印信息到屏幕
当我们需要在文件中向屏幕输出一些提示信息或者警告,可以使用 MESSAGE
来实现。
MESSAGE([OPTION] "Description of the message")
OPTION
可以是 STATUS/WARNING/FATAL_ERROR
中任意一个,也可以保持缺省状态。默认是STATUS
。
MESSAGE(STATUS "Status test!")
MESSAGE(WARNING "Waning test!")
MESSAGE(FATAL_ERROR "Fatal error test!")
三种类型的输出显示如下,当设置为 FATAL_ERROR
并触发输出时,会使得编译被终止。
-- Status test!
CMake Warning at CMakeLists.txt:16 (MESSAGE):
Waning test!
CMake Error at CMakeLists.txt:17 (MESSAGE):
Fatal error test!
-- Configuring incomplete, errors occurred!
二、cmake编译命令行参数详解
1. 编译动态链接库
如果想要将项目编译成动态链接库的形式,可以在命令行通过参数控制
cmake -DBUILD_SHARED_LIBS=ON ..
2. 指定编译安装路径
通过在编译命令行中使用指令 CMAKE_INSTALL_PREFIX
来控制。
cmake -DCMAKE_INSTALL_PREFIX=/path/to/install ..
三、CMake项目应用案例
1.下载并安装eigen、ceres-solver等数学运算库
可以参考openMVS build wiki
附:各种不同的GPU架构对应的 sm 标志
TODO
- Improve compile time using forward declaration of options
- 借鉴并学习COLMAP 提升编译速度的技巧!
(全文完)
参考资料
[1] Cmake中查找并使用其他程序库 https://blog.csdn.net/laolu1573/article/details/60573511
[2] 配置eigen3和ceres为thirdparty https://blog.csdn.net/billbliss/article/details/88585171
[3] Detecting Cuda Architecture required by CMake using NVCC https://wagonhelm.github.io/articles/2018-03/detecting-cuda-capability-with-cmake
[4] Matching SM architectures (CUDA arch and CUDA gencode) for various NVIDIA cardshttp://arnon.dk/matching-sm-architectures-arch-and-gencode-for-various-nvidia-cards/
本文作者 :phillee
发表日期 :2021年4月2日
本文链接 :https://www.cnblogs.com/phillee/p/12831765.html
版权声明 :自由转载-非商用-非衍生-保持署名(创意共享3.0许可协议/CC BY-NC-SA 3.0)。转载请注明出处!
限于本人水平,如果文章和代码有表述不当之处,还请不吝赐教。
内容总结
以上是互联网集市为您收集整理的CMake基础语法及应用全部内容,希望文章能够帮你解决CMake基础语法及应用所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。