运行库不一致导致的问题(/MDd /MTd)

如果出现如下问题

 error LNK2038: 检测到“RuntimeLibrary”的不匹配项:  值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”

1>LIBCMTD.lib(tzset.obj) : error LNK2005: __tzset 已经在 MSVCRTD.lib(MSVCR120D.dll) 中定义


可以考虑是否链接的lib的调式的运行库不一致。

查看方式:项目属性->C/C++->代码生成->运行库     应该修改成一致。

查看网络上的资料如下:

MTmutithread,多线程库,编译器会从运行时库里面选择多线程静态连接库来解释程序中的代码,即连接LIBCMT.lib库

MTdmutithread+debug,多线程调试版,连接LIBMITD.lib库

MDMT+DLL,多线程动态库,连接MSVCRT.lib库,这是个导入库,对应动态库为MSVCRT.dll

MDd MT+DLL+debug,多线程动态调试库,连接MSVCRTD.lib库,对应动态库为MSVCRTD.dll

开发多线程程序时(单线程本文不做讨论),需要选择MT、MTd、MD、MDd其中的一个。

你可能感兴趣的:(C++,VC)