首页 > 其他 > 详细

VC运行库版本不同导致链接.LIB静态库时发生重复定义问题的一个案例分析和总结

时间:2018-10-25 10:45:58      阅读:145      评论:0      收藏:0      [点我收藏+]

原文链接地址:https://blog.csdn.net/ithzhang/article/details/13170047

MSDN中对于在不同的配置下Link的LIB作了说明:

C Runtime Library:

开关

对应的库

版本
/MD MSVCRT.LIB 多线程DLL的Release版本
/MDd MSVCRTD.LIB

多线程DLL的Debug版本

/MT

LIBCMT.LIB

多线程静态链接的Release版本

/MTd

LIBCMTD.LIB

多线程静态链接的Debug版本

/clr

MSVCMRT.LIB

托管代码和非托管代码混合

/clr:pure MSVCURT.LIB

纯托管代码

 

C++ Standard Library:

开关

对应的库

版本
/MD MSVCPRT.LIB 多线程DLL的Release版本
/MDd MSVCPRTD.LIB

多线程DLL的Debug版本

/MT

LIBCPMT.LIB

多线程静态链接的Release版本

/MTd

LIBCPMTD.LIB

多线程静态链接的Debug版本

编译器会自动根据编译选项,选择对应的LIB文件。一般情况下这不会出现问题。

然而,在部分情况下,一旦你的程序的各个部分(LIB, OBJ…)并非由相同的编译选项编译出,而Link在一起的话,会出现各种各样的看似很难解决的问题,这类问题主要以重复定义的错误形式存在,通常的解决方法也很简单,就是选择同样的编译选项进行编译之后再Link。

VC运行库版本不同导致链接.LIB静态库时发生重复定义问题的一个案例分析和总结

原文:https://www.cnblogs.com/wuyuan2011woaini/p/9847718.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!