CMake设置MSVC运行库

本文详细介绍了如何在CMake中设置MSVC运行库,包括MultiThreaded、MultiThreadedDLL、MultiThreadedDebug和MultiThreadedDebugDLL的不同选项,以及$<<CONFIG:Debug>:Debug>的用法和默认值。还提供了在全局解决方案和单个项目中的设置示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

本篇文章介绍如何在CMake中设置MSVC运行库,对应VS属性界面的选项如下:
在这里插入图片描述
注意:
对于非windows系统,该值将被忽略,所以我们设置该值的时候可以不用考虑平台相关

MSVC_RUNTIME_LIBRARY

这是一个变量,该变量就是用于设置MSVC运行库的值的,可以设置的值如下:

  • MultiThreaded:对应于VS的/MT,多线程静态链接运行库
  • MultiThreadedDLL:对应于VS的/MD,多线程动态链接运行库
  • MultiThreadedDebug:对应于VS的/MTd,多线程静态链接运行库的Debug模式
  • MultiThreadedDebugDLL:对应于VS的/MDd,多线程动态链接运行库的Debug模式

设置的语法规则如下:

set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")

重点是$<$<CONFIG:Debug>:Debug>这一部分,这一部分的意思是如果当前是Debug模式,返回Debug,否则返回空,所以设置指令对应的VS选项如下:

  • /MT和/MTd:
    set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
    
  • /Md和/MDd:
    set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>DLL")
    

默认值

注意,如果没有进行设置,该选项的默认值是MultiThreaded$<$<CONFIG:Debug>:Debug>DLL

使用场景

整个解决方案

可以在写完cmake_minimum_required和project之后马上设置MSVC运行库,这样会影响所有的生成目标:

set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")

针对单个项目

在单个项目的CMakeLists中设置

set_target_properties(Target PROPERTIES
    MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>"
)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值