- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我know如果我们设置 -DCMAKE_BUILD_TYPE=Release
(或 Debug
等),则 CMAKE_C_FLAGS_RELEASE
和 CMAKE_CXX_FLAGS_RELEASE
将分别附加到 CMAKE_C_FLAGS
和 CMAKE_C_FLAGS
。
但这就是设置构建类型的唯一效果吗?如果没有,其他影响是什么?
最佳答案
实际上,构建类型会影响很多事情。其中:
表达式 $<$<CONFIG:DEBUG>:XXX>
将扩展为 XXX
CMAKE_BUILD_TYPE 设置为 Debug
别无他法。
因为生成器表达式可以在许多命令中使用,所以设置构建类型会影响所有使用依赖于构建类型的表达式的命令。
由 target_link_libraries
添加的库with debug 关键字只在Debug
生效构建类型。
类似于优化关键字。
(隐含地,这使用了上述生成器表达式)。
IMPORTED 库的一些属性。
像 IMPORTED_LOCATION 这样的属性有 config-specific variants ,根据配置类型选择。
通常 IMPORTED 库是由于 find_package()
而创建的调用,因此您的项目可能以依赖于配置的方式与 3d 方项目链接。
CONFIGURATION - install 的特定部分命令。
只有那些 CONFIGURATION <conf>
部分为apply,对应active配置。
多配置 工具不使用 CMAKE_BUILD_TYPE
变量,但他们仍然有“构建类型”的概念。当 CMake 解析 CMakeLists.txt
时,该构建类型在 配置 阶段未知。 , 它仅在执行项目的 build 时设置。然而,此构建类型“追溯”影响上述所有属性。
此外,使用多配置构建工具,选择的构建类型附加到输出工件的位置,例如可执行文件和库(参见例如 RUNTIME_OUTPUT_DIRECTORY 目标属性的描述)。
关于cmake - 除了编译器标志选择之外,CMAKE_BUILD_TYPE 会影响什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46819502/
我正在处理一个非常大的项目,我正在从使用自定义 Makefile 转向使用 cmake,但我仍然缺少使用 Makefile 实现的功能。 项目有很多子目录,每一个都编译成一个静态库,然后链接成最终的可
我know如果我们设置 -DCMAKE_BUILD_TYPE=Release(或 Debug 等),则 CMAKE_C_FLAGS_RELEASE 和 CMAKE_CXX_FLAGS_RELEASE
如果不设置 CMAKE_BUILD_TYPE ,然后,默认情况下,它不会被缓存。我应该缓存它吗?例如我应该: if(NOT CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TY
我正在尝试包含调试/发布相关编译器标志,例如: set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++0x -Wall -DUSE_BOOST") set
在我的 CMake C++ 项目中,我使用的是 CGAL。它通过 apt 安装在我的 Ubuntu 系统(版本 16.04 LTS)上(Package libcgal-dev version 4.7-
我们正在创建一个 Android 应用程序来比较 ART 和 native 代码之间的执行时间。我们使用 Android Studio 和 CMake 编译 C/C++。 当我们在 CMakeList
我只是想在 Debug模式下构建一个 cmake 项目以启用断言。我尝试了以下版本: cmake -D CMAKE_BUILD_TYPE:STRING=Debug -L ../../ cmake -D
是否CMAKE_BUILD_TYPE=Release隐含地暗示-DNDEBUG ? 如果不是:预期这种暗示会发生是否合理? 我想知道是否关注 CMake我的 CMakeLists.txt 中的代码是多
我在将默认构建配置设置为 Release 时遇到问题。在我的 CMakeLists.txt 文件中,我在文件顶部设置了 CMAKE_BUILD_TYPE: #enable Release ALWAYS
当变量CMAKE_BUILD_TYPE是空的哪些编译器标志被使用?编译器是否只是简单地使用 CMAKE_CXX_FLAGS和 CMAKE_C_FLAGS对于 C++ 和 C? 最佳答案 根据编译器的不
来自 docs page : CMAKE_BUILD_TYPE Specifies the build type on single-configuration generators. This st
我是一名优秀的程序员,十分优秀!