不容忽视的警告:默认库msvcrt.lib与其他库的使用冲突,请使用/NODEFAULTLIB:library

Posted 疯狂的键盘

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了不容忽视的警告:默认库msvcrt.lib与其他库的使用冲突,请使用/NODEFAULTLIB:library相关的知识,希望对你有一定的参考价值。

用Visual Studio编译C++项目的时候可能会遇到这个警告:默认库msvcrt.lib与其他库的使用冲突,请使用/NODEFAULTLIB:library。

不要因为是警告就可以不管了,这个问题不解决会给你带来无穷无尽的痛苦。

之所以VS会爆出警告,是因为VS在编译链接的时候发现既链接了msvcrtd.lib又要去链接msvcrt.lib。这种情况往往是因为你引用了地方三库。VS抱怨了而你没有关心,程序虽然编完了,但是一运行就出错,这时再去解决问题就麻烦了,你甚至不知道错在哪里。

还是老老实实先把警告解决了吧。

解决方法倒是也简单,因为警告信息里已经大概指明方向了。在项目配置里面忽略一下某个默认库就可以了。在这里就是忽略msvcrt.lib。

以上是关于不容忽视的警告:默认库msvcrt.lib与其他库的使用冲突,请使用/NODEFAULTLIB:library的主要内容,如果未能解决你的问题,请参考以下文章

Qt 调试环境部署异常处理

《深入浅出MFC》第六章 MFC程序的生死因果

LNK4098: 默认库“MSVCRT”与其他库的使用冲突

静态库与动态库

VS编译链接时错误(Error Link2005)的解决方法

cmake设置默认静态链接库