cmake
feilongzaitianhehe
软件开发者,涉猎范围包括但不限于C#、C、C++,系统包括Linux、freeRTOS、windows等;
联系邮箱:956806322@qq.com 或者 微信:flshihuai 无重要事项不要联系,谢谢各位
展开
-
Cmake 之 自定义模块(Module)
1. 为什么要自定义模块项目一般从CMakeLists.txt开始编写,但是随着时间的推移,CMakeLists.txt文件会变的越来越大,这个时候我们就需要将CMakeLists.txt文件拆开分写成几个小的模块,这样做的好处是:1.主文件CMakeLists.txt易读性强2.CMake 模块能够在其它项目中重复使用3.和CMake的函数相比,模块能够帮助我们限制变量的作用域这一节我们将通过定义并包含一个宏来展示如何编写并使用CMake的模块(Module)2. 如何自定义模块转载 2020-12-24 10:58:33 · 804 阅读 · 0 评论 -
CMake--模块的使用和自定义模块
1.链接外部库如果程序中使用了外部库,事先并不知道它的头文件和链接库的位置,就要给出头文件和链接库的查找方法,并将他们链接到程序中。FIND_PACKAGE(<name> [major.minor] [QUIET] [NO_MODULE] [[REQUIRED|COMPONENTS] [componets...]])1) find_package()的查找路径find_package()命令首先会在模块路径中寻找 一个事先编译好的Find.cmake文件,而且一般官方给出了转载 2020-12-24 10:52:50 · 246 阅读 · 0 评论 -
CMake模块
一、find_packge高级功能1、find_package的模式find_package()有Module模式(基本用法)和Config模式(完全用法),其中Module模式是基础,Config模式则提供复杂高级功能。find_package是否使用Config模式可以通过下列条件判断:(1)find_package()中指定CONFIG关键字(2)find_package()中指定NO_MODULE关键字(3)find_package()中使用了不再Module模式下所有支持配置的关键转载 2020-12-24 10:21:49 · 535 阅读 · 0 评论 -
cmake:在各级子项目(目录)之间共享变量
项目目录结构如下图,facedetect和facefeature都要用到opencl中的include文件,1.2,2.0,2.1是不同的opencl版本的头文件,希望在cmake创建Makefile时,opencl文件夹下的CMakeLists.txt能定义类似INCLUDE_OPENCL_1_2,INCLUDE_OPENCL_2_0,INCLUDE_OPENCL_2_1,这样的变量,以保存不同版本的opencl 头文件位置,最后关键是能让项目中其他子目录的CMakeList.txt能使用这些变量。转载 2020-12-04 22:54:44 · 862 阅读 · 0 评论 -
cmake变量使用
在编写CMake脚本时,您需要了解很多关于CMake中的语法和如何使用变量的知识。句法字符串使用set(): set(MyString "Some Text") set(MyStringWithVar "Some other Text: ${MyString}") set(MyStringWithQuot "Some quote: \"${MyStringWithVar}\"") 或与string(): string(APPEND MyStringWithCont转载 2020-12-04 22:17:31 · 348 阅读 · 0 评论 -
cmake 变量总结
CMakeLists中的变量常规变量CMakeLists.txt中的常规变量有作用域的, 变量分以下两种变量:常规变量set(abc "123") 缓存变量set(abc "123" CACHE STRING ""), 在CMakeLists.txt构造以后,会在CMakeCache.txt中有所有缓存变量的记录.常规变量有如下特点:常规变量每次重新创建, 没有缓存 常规变量使用set(abc "123")的方式创建 其他变量要引用这个创建的变量,需要用解引用方法${}, 例如:se转载 2020-12-03 22:00:27 · 586 阅读 · 0 评论 -
CMake 两种变量原理
目录[TOC] 1、两种变量的定义参考 2、两种变量的作用域原理及使用 1、Normal Variables (1)、包含 add_subdirectory()、function()。(本质是值拷贝) (2)、**包含 include()、macro() **(本质有点类似 c 中的 #include 预处理含义) 2、Cache Variables 参考:摘要:本文记录一下 CMake 变量的定义、原理及其使用。CMake 变量包含Normal Varia.转载 2020-12-03 21:55:47 · 111 阅读 · 0 评论 -
深入理解CMake:find_package()的使用
find_package()原理解读根据cmake官方文档可以知道,find_package()有Module模式(基本用法,basic signature)和Config模式(full signature,完全用法),其中Module模式是基础,Config模式则更复杂高级些。区分Module模式和Config模式Module模式也就是基础用法(Basic Signature,这里Signature表示“用法”,而不是“签名”),Config模式也就是高级用法(Full Signature)。转载 2020-06-27 16:48:17 · 560 阅读 · 0 评论 -
Cmake生成debug版本和release版本
在Visual Studio中我们可以生成debug版本和release版本的程序,使用Cmake我们也可以达到同样的效果。debug版本的项目生成的可执行文件需要有调试信息并且不需要进行优化,而release版本的不需要调试信息但是需要优化。这些特性在gcc/g++中通过编译时的参数来决定的,如果将优化程度调到最高需要设置 -O3 ,最低的是 -O0 即不做优化,添加调试信息的参数是 -g -ggdb,如果不添加这个参数,调试信息就不会被包含在生成的二进制中, -Wall 显示报警信息CMake中..原创 2020-06-26 12:09:13 · 3353 阅读 · 0 评论 -
Cmake---之编译模式设置
转载自http://aigo.iteye.com/blog/2295102一般Debug和Release必须在不同的目录下编译,否则每次当切换模式时必须把编译文件全部删掉。这里假设新建两个目录Debug和Release来分别用于构建相应的模式:终端输入mkdirRelease cdRelease cmake-DCMAKE_BUILD_TYPE=Release.. make终端输入mkdirDebug cdDebug cmake...转载 2020-06-26 09:51:58 · 164 阅读 · 0 评论 -
cmake的两个命令: option 和 configure_file
原文链接:https://www.cnblogs.com/the-capricornus/p/4717566.html本节要讨论的是cmake的两个命令: option 和 configure_fileoption 选项,让你可以根据选项值进行条件编译。configure_file 配置文件,让你可以在代码文件中使用CMake中定义的的变量optionProvides an option that the user can optionally select.option 提供一个用户可以.转载 2020-06-25 22:04:44 · 361 阅读 · 0 评论