首页 > 编程语言 >[C++][MSVC][Error] 检测到 RuntimeLibrary 的不匹配项: 值 MT_StaticRelease 不匹配值 MD_DynamicRelease

[C++][MSVC][Error] 检测到 RuntimeLibrary 的不匹配项: 值 MT_StaticRelease 不匹配值 MD_DynamicRelease

时间:2024-11-30 11:33:19浏览次数:6  
标签:MD 匹配 MT DynamicRelease C++ CMP0091 MSVC cmake

1 简介

本文将介绍在 C++ 编程中使用 MSVC 编译器时可能遇到的错误:检测到 RuntimeLibrary 的不匹配项:值 MT_StaticRelease 不匹配值 MD_DynamicRelease。该错误通常是由于编译器和链接器之间的设置不一致引起的。

2 VisualStudio环境

在 MSVC 工程上右键->属性,找到配置属性 -> C/C++ -> 代码生成 -> 运行库,如下图

这四个参数的区别如下:

  • 最后一个字母带d和不带d的区别:后面带d表示Debug,生成对象(exe、lib都行)是带有调试信息的,生成对象占用空间相比不带d的会更大一些
  • MT和MD的区别:前者是静态链接,将有关依赖库都打包进生成对象了,所以占用空间更大;后者是动态链接,运行时依赖电脑环境,容易出现换个电脑报错dll的现象。

2 CMake环境

参考 CMake设置MSVC工程MT/MTd/MD/MDd_cmake mtd-CSDN博客 的方案来解决这个问题

# 设置策略CMP0091为NEW,新策略
if (POLICY CMP0091)
  cmake_policy(SET CMP0091 NEW)
endif (POLICY CMP0091)

# 声明一个工程
project(TestpyTest)

# 添加一个exe
add_executable(test test.cpp)

# 设置MT/MTd
set_property(TARGET test PROPERTY MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")

需要注意的有以下几点:

  • cmake_policy 这个步骤一定要放在 声明project 之前。
  • MSVC_RUNTIME_LIBRARY的取值可以替换为以下几个:
    • MultiThreaded :对应MT
    • MultiThreadedDLL :对应MD
    • MultiThreadedDebug:对应MTd
    • MultiThreadedDebugDLL:对应MDd

3 参考资料

标签:MD,匹配,MT,DynamicRelease,C++,CMP0091,MSVC,cmake
From: https://www.cnblogs.com/Zheng-Bicheng/p/18578200

相关文章

  • Halcon——使用Halcon模板匹配助手自动生成模板匹配代码
    1.找到模板助手模板助手的位置在菜单栏,助手——>打开新的Maching当出现下面这种弹窗时,就说明你已经成功找到Halcon模板匹配助手啦~2.模板匹配助手的操作流程read_image(Image,'D:/CStest/Halcon/MachineVision-main/CodeSet/test_image/1.png')(1)创建先读一张图片,这......
  • “4步实现”CAD模型与实物以图搜图的精准匹配,“6倍效率提升”机械加工比对
    在机械制造与加工领域,设计图纸与实物的比对是确保产品质量的重要环节。然而,传统比对方式耗时长、易出错,严重影响生产效率。针对这一痛点,思通数科推出了一套基于大模型技术的智能比对系统,集成以图搜图、实物比对和多视图生成等功能,为用户带来高效、精准的解决方案。核心功能在......
  • 利用mmdetection进行模型的训练(使用自己的数据集)详解
    mmdetection具有很多现有的目标检测和分割的模型,可以很方便地来进行对比试验运行模型进行训练通常使用tools/train.py文件进行模型训练选择调试以带参数的调试模式进行,在此处输入你的配置文件的地址以下是train.py的主函数中的主要内容defmain():args=parse_a......
  • Windows Cmd查询端口号对应的进程及关闭进程
    WindowsCmd查询端口号对应的进程及关闭进程1.使用netstat查询端口和进程信息运行以下命令:netstat-ano|findstr:端口号示例:如果要查询端口80812.查找进程ID所属的程序通过上面命令的输出获取到PID(进程ID)后,可以使用以下命令查看对应的程序名称:tasklist|fi......
  • 车货匹配平台有哪些板块
    车货匹配平台在现代物流行业中扮演了重要角色,它们通过整合资源和技术手段,实现了货物与运输工具的高效连接,提升了整个行业的运作效率。以下是一些主要的车货匹配平台板块介绍:业务板块信息展示:车货匹配平台为车主和货主提供丰富的信息,包括车辆类型、货源信息、运输路线、周边货......
  • CTranslate2:在 AMD GPU 上高效推理 Transformer 模型
    CTranslate2:EfficientInferencewithTransformerModelsonAMDGPUs—ROCmBlogsTransformer模型通过在机器翻译、文本摘要、文本生成和语音识别等任务中提供高性能结果,彻底改变了自然语言处理(NLP)的领域。然而,由于这些模型对计算和内存的高需求,在生产环境中部署它们......
  • 使用ROCm在AMD GPU上进行Llama 3.2视觉LLMs推理
    InferencewithLlama3.2VisionLLMsonAMDGPUsUsingROCm—ROCmBlogsMeta的Llama模型现在支持多模态功能,扩展了其在传统文本应用之外的应用范围。Llama3.2模型有多种尺寸,包括用于视觉-文本推理任务的中型11B和90B多模态模型,以及为边缘和移动设备设计的轻量级1B和3B......
  • ORB-SLAM2源码学习:ORBmatcher.cc:ORBmatcher::SearchByProjection通过地图点投影进行特
    前言在ORB-SALM2中,使用最多的匹配方式就是投影匹配的方式SearchByProjection(),根据参数列表的不同可以有不同的函数重载。1.原理:1.投影地图点的来源:1.恒速模型追踪时,地图点来自前一个普通的帧。2.局部地图跟踪时,地图点来自所有的局部地图点。3.重定位时,地图点来自所有的候......
  • 6CCS3AIN  Pacman MDP-solver
    6CCS3AIN Coursework1IntroductionThiscourseworkexerciseasksyoutowritecodetocreateanMDP-solvertoworkinthePacmanenvironmentthatweusedforthepracticalexercises.Readalltheseinstructionsbeforestarting.Thisexercisewillbeasses......
  • 日期字符格式yyyyMMddHHmmss转换字符串或LocalDateTime对象
    日期字符格式yyyyMMddHHmmss转换字符串或LocalDateTime对象字符串yyyyMMddHHmmss转换字符串 格式publicstaticStringstringToDateStringSimpleV2(Stringstr){//使用新的方式转换时间LocalDateTimedate=LocalDateTime.parse(str,DateTimeForma......