0%

error_LNK2038__检测到_RuntimeLibrary_的不匹配项_解决方法

自动摘要: 每天一个小技巧:编译的包给其他部门报错image.png 首 ……..

每天一个小技巧:编译的包给其他部门报错

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

多线程调试Dll (/MDd) 对应的是MD_DynamicDebug多线程Dll (/MD) 对应的是MD_DynamicRelease多线程(/MT) 对应的是MD_StaticRelease多线程(/MTd)对应的是MD_StaticDebug

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 设置策略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>")

欢迎关注我的其它发布渠道