cmake的默认构建配置是什么

2023-11-23

In this答案,它说 Debug 是默认的 cmake 构建配置。

但我有不同的观察:

我在 CMakeLists.txt 中有以下内容,可以根据当前的构建配置选择库的调试和发布版本。

target_link_libraries(MyApp debug Widgets_d)
target_link_libraries(MyApp optimized Widgets)

似乎当我调用 cmake 而不指定 -DCMAKE_BUILD_TYPE 标志时,使用 Widgets 而不是 Widgets_d (当我删除 Widgets 并尝试构建时,make 抱怨 lib 不存在)。因此,这意味着默认情况下构建配置是优化的,而不是调试的。

那么默认的构建配置实际上是什么?如果是调试,我的 CMakelists.txt 可能有什么问题?


是否取决于您使用的是单配置生成器(Makefile)还是多配置生成器(Visual Studio、XCode)。

The link问题中引用的是关于多配置生成器。当使用多配置生成器时,配置变量CMAKE_BUILD_TYPE被忽略。要选择要构建的配置,cmake 允许切换--config。在许多情况下,省略--config建立一个Debug配置,但目前CMake 文档现在澄清没有指定的默认值 - 它甚至可以为空。

然而,当使用单配置生成器时,开关--config被忽略。仅配置变量CMAKE_BUILD_TYPE用于确定构建类型。默认值取决于工具链(请参阅docs).

有关单配置和多配置生成器的更多背景信息,请参阅这个答案.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

cmake的默认构建配置是什么 的相关文章

随机推荐

  • 处理 jquery 自动完成中的无结果

    嘿 当用户当前查询没有结果时 我正在尝试返回消息 我知道我需要点击 keyup 事件 但看起来插件正在使用它 这个问题确实已经过时了 无论如何我正在使用新的 jQuery UI 1 8 16 自动完成现在非常不同 http jqueryui
  • 从 .txt 文件读取和显示数据

    如何读取和显示 txt 文件中的数据 BufferedReader in new BufferedReader new FileReader
  • 使用 Ruby 执行命令行时如何避开竖线?

    我在 Windows 中输入以下命令行 dir b ruby ne f chomp File read f each line line print f if line helloworld 此行用于查找当前目录下的所有文件hellowor
  • 了解 ISO 8583 消息日志

    我在以下位置阅读了有关 ISO 8583 消息传递的内容 WIKI and 代码项目 我理解 ISO 8583 消息基本上可以分为 3 部分 MTI 消息类型指示器 1 1 版本 1 2 消息类 1 3 留言功能 1 4 消息来源 Bitm
  • 使用Lua将0秒格式化为00:00:00

    我正在尝试将持续时间 以秒为单位 格式化为时间 并且得到的结果表明我应该在某个地方考虑 一个纪元 我期望os date X 0 生成 00 00 00 但它返回 20 00 00 以及日期值 12 31 69 不过我不需要日历日期 是否有一
  • WCF通信异常

    接收 HTTP 响应时发生错误http 生产 服务 AccountService svc 这可能是由于 服务端点绑定不使用 HTTP 协议 这可以 也可能是由于服务器中止 HTTP 请求上下文 可能是由于服务关闭 查看服务器日志了解更多信息
  • 为什么不能声明嵌套类类型的内联静态数据成员?

    struct sa struct sb int a 123 inline static sb b 上面的代码会产生一个错误 main cpp 25 20 error default member initializer for sa sb
  • 来自 Windows 的低级键盘输入

    哪些 win32 调用可用于从 Windows 服务全局检测按键事件 不仅仅是 1 个窗口 我想在每次按下按键时收到一条消息 您想使用 Win32 Hooks 特别是键盘挂钩 你可以在这里读更多关于它的内容 您想要的挂钩类型是 WH KEY
  • Python从py模块读取所有导入语句的简单方法

    我正在尝试创建一个辅助函数来读取文件并模拟单元测试的所有导入 我必须读取文件与导入 因为我在 python 路径上没有这些东西 示例代码 module py import com stackoverflow question from co
  • cmake:使用多个输出配置

    我正忙于将构建过程从 msbuild 移植到 cmake 以便更好地处理 gcc 工具链 它为我正在做的一些数字工作生成更快的代码 现在 我希望 cmake 生成多个版本的输出 例如一个版本使用 sse2 另一个版本使用 x64 等等 然而
  • 如何使用jackson在java中将json转换为POJO

    我使用的是 spring 3 1 2 我需要将 json 对象解析为 POJO 这是我需要解析的 json Person id 2 Dog dateOfBirth 2012 08 20 00 00 00 price 10 00 我需要将这个
  • 使用 unix 实用程序删除连续的重复行

    这表面上听起来很简单 但实际上要复杂一些 我想使用 unix 实用程序删除连续的重复项 保留原始内容 但是 我还想保留在原始内容之后不立即出现的其他重复内容 例如 如果我们有以下几行 O B O B C D T V O B 我希望输出是 O
  • fastcgi 多路复用?

    我正在实现 fastcgi 应用程序 在阅读 fastCGI 规范后 我发现了一个名为 请求多路复用 的功能 它让我想起 Adob e RTMP 多路复用协议是专有且封闭的时代 据我了解 多路复用可以减少创建与 FCGI 客户端的新连接的开
  • 如何找到具有项目值的列表框项目索引?

    my MessageBox Show listbox Items 0 ToString is abber 如何使用 abber 找到列表框项目索引 0 With listbox Items IndexOf abber That is int
  • 有没有办法知道 C++ 中自动包含哪些标头

    这是一个后续问题this上面说 在 C 中 与 C 不同 标准标头允许 include 其他标准标头 有什么方法可以知道自动包含哪些标头 因为可能很难猜测哪些标头中定义了哪些符号 动机 我的作业在我的计算机上编译并正常工作 但 TA 告诉我
  • 如何从异步调用返回响应?

    如何从函数返回响应 结果foo发出异步请求 我试图从回调中返回值 并将结果分配给函数内的局部变量并返回该变量 但这些方法都没有实际返回响应 它们都返回undefined或者无论变量的初始值如何result is 接受回调的异步函数示例 使用
  • 闪亮的反应性

    我有一个带有大量参数的应用程序 每个参数都有很多粒度 这使得找到所需的参数变得很痛苦 这会导致反应部分不断计算 从而减慢速度 我添加了一个提交按钮 它解决了上述问题 但随后又遇到了另一个问题 下面是我构建的框架的简单复制 参数输入接受1到1
  • PowerShell函数参数语法

    为什么要这样做写主机函数外部的工作方式与函数内部的工作方式不同吗 似乎参数变量以某种方式与我声明的内容发生了变化 function a string svr string usr x svr usr Write Host x svr abc
  • 查询对象实现示例[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 任何人都可以推荐有关 C Java 中查询对象模式使用的优秀教程 实现或示例代码吗 我用谷歌没有找到太多 由于 LINQ 几乎无处不在 您确定需要重
  • cmake的默认构建配置是什么

    In this答案 它说 Debug 是默认的 cmake 构建配置 但我有不同的观察 我在 CMakeLists txt 中有以下内容 可以根据当前的构建配置选择库的调试和发布版本 target link libraries MyApp