如何在CMakeLists.txt中正确设置CMake标志
How to properly set CMake flags in CMakeLists.txt
我在设置选项和 CMake 变量并将它们传播到 CMake GUI 时遇到问题。
例如,以下行在我的 CMakeLists.txt 文件中:
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -tR -DPOCO_DLL")
message("CMake flags: " ${CMAKE_CXX_FLAGS})
在 CMake GUI 中运行配置时,它会打印">CMake 标志:-tM -tR -DPOCO_DLL">,表示设置CMAKE_CXX_FLAGS"有效"。
但是,GUI 不会更新,仅在CMAKE_CXX_FLAGS行上显示"-tM"。
在 CMakeLists文件中设置这些 CMAKE 选项以便将它们传播到 CMake GUI 的正确方法是什么?
诀窍是在语句之前设置CMAKE_CXX_FLAGS
project(...)
。但这还不够;您还需要将其放入缓存中。
此外,如果您计划最初支持从命令行界面和/或-C
cmake 选项(locad 初始缓存(设置它,则需要强制将其放入缓存中,如下所示:
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -tR -DPOCO_DLL" CACHE STRING "Default CXX options" FORCE)
...
...
project(MyProject)
....
另一方面,要非常小心,因为您正在设置命令行选项,而此时您对编译器一无所知,默认情况下,这是在执行project
语句期间确定的。
隐式地,这会使CMakeLists.txt
编译器依赖于。
最后,这是关于设置 cmake 命令的文档
相关文章:
- 如何在Ubuntu中使用cmake设置qt4
- 在 CMake 中为每个目标设置编译器/链接器标志
- Cmake:为 C 设置警告级别,并为 MSVC 单独设置C++代码(Visual C++)
- 在Visual Studio CMake中设置默认编译器
- 如何在 CMake 中设置此文件夹结构?
- 如何设置 cmake 以在不同位置查找标头和库
- 错误:必须设置CMake工具才能生成.在工具包选项中配置CMake工具
- 在Windows上设置CMake和vcpkg时出错"无法打开包含文件"
- 如何在CMakeLists.txt中正确设置CMake标志
- 如何设置 CMake 来构建包含路径包含的代码,如 #include < libdir/lib>?
- 设置CMAKE生成的文件的输出路径
- 如何设置CMake以便与Visual Studio 2017RC和CUDA 8.0一起使用
- 如何设置CMake与clang进行Windows嵌入式ARM的交叉编译
- 如何设置 cmake,以便将 txt 文件作为资源添加到工作目录中
- 如何设置 CMAKE 静态链接(未定义对 'dlopen' 的引用)?
- gtest 设置 cmake 以使其运行
- 如何正确设置CMake项目
- 在qtcreator中设置cmake项目的mpi进程数
- 如何在windows上设置cmake CXX变量
- 如何设置 CMake 以生成仅标头项目