将CMAKE_CXX_FLAG设置在父目录中一次,并在子目录中有效
set CMAKE_CXX_FLAGS once in parent directory and have it valid in child directories
我有一个带有cmakelists.txt文件的目录结构:
Parent_DIR/CMakeLists.txt
Parent_DIR/src/CMakeLists.txt
Parent_DIR/test/CMakeLists.txt
我还有一个预处理器变量double_precision,它可以控制我所有的计算是用双打或浮子完成的。有人告诉我我需要单独设置每个文件夹中的变量,要么用
设置set(DOUBLE_PRECISION 1)
或
set(CMAKE_CXX_FLAGS "-DDOUBLE_PRECISION")
我的问题是:是否有任何方法可以在父目录中设置此变量一次,而不必在每个cmakelists.txt文件中设置它?似乎每次必须手动设置它似乎很容易出错。
而不是修改 CMAKE_CXX_FLAGS
添加cmake命令add_definitions
add_definitions(-DDOUBLE_PRECISION)
使用add_subdirectory
输入子目录之前,请访问您的Parent_DIR/CMakeLists.txt
。该命令将预处理器定义添加到当前目录和以下源的编译器命令行中。
如果在缓存中设置一个变量,则将为整个项目,子目录和父目录中设置它。将CACHE
添加到您的set
命令中。
相关文章:
- 我是否需要在下一次转移时将所有权*转移回转移队列
- 使用仅使用一次的变量调用的复制构造函数.这可能是通过调用move构造函数进行编译器优化的情况吗
- 在C++中一次将矢量值写入多个文件
- 循环中的条件:为什么每次都调用strlen(),而vector.size()只调用一次
- 为什么 zlib 放气初始化调用一次不起作用?
- 在一次迭代中从 txt 文件中读取多行
- 为什么无论你输入什么,这"while(cin.get(str,3))"只运行一次?
- 在头文件和 cpp 文件中使用一次 #pragma 时出现结构重定义错误
- 有没有办法一次声明相同类型的多个对象,并通过一个表达式立即使用相同的右值初始化它们?
- 找到一种有效的方法,在 2 个巨大的缓冲区上执行 MAX,每字节字节
- 高级选择排序 - 在一次迭代中搜索两个元素
- 具有相同特征的两个对象是否只在内存中存储一次?无论定义它们的函数是什么,都是不同的
- 在unordered_multimap中精确迭代一次每个键的有效方法
- 搜索字符串是否至少包含一次从 0 到 9 的所有数字的最有效方法
- 将CMAKE_CXX_FLAG设置在父目录中一次,并在子目录中有效
- 抓住C++中仅有效一次的锁
- 每秒执行一次的函数,它是有效的,但喜欢每0.5秒执行一次
- 一个有效的方法,随机选择std::vector的所有元素正好一次而不重新洗牌
- 哪个标准措辞告诉我们,ref-to-const 临时寿命延长只"有效一次"?
- 在堆栈上分配一个小对象比在堆上创建它(一次)更有效吗