Qt+VS编译器:默认库“library”与其他库的使用冲突;使用 /NODEFAULTLIB:library(我曾经碰到过,修改qmake.conf,但我修改的是VS的IDE配置)good

      找到qt安装目录下的mkspecs文件夹,在里面找到你使用的对应版本编译器,打开qmake.conf。稍等:

/MD:动态链接多线程库(msvcrt.lib)。使用该选项时,需要用/NODEFAULTLIB选项来忽略掉libc.lib、 libcmt.lib、libcd.lib、libcmtd.lib、msvcrtd.lib库,否则会有链接错误;

/MDd:动态链接多线程调试库(msvcrtd.lib)。使用该选项时,需要用/NODEFAULTLIB选项来忽略掉libc.lib、 libcmt.lib、msvcrt.lib、libcd.lib、libcmtd.lib库,否则会有链接错误;

/MT:静态链接多线程库(libcmt.lib)。使用该选项时,需要用/NODEFAULTLIB选项来忽略掉libc.lib、 msvcrt.lib、libcd.lib、libcmtd.lib、msvcrtd.lib库,否则会有链接错误;

/MTd:静态链接多线程调试库(libcmtd.lib)。使用该选项时,需要用/NODEFAULTLIB选项来忽略掉libc.lib、 libcmt.lib、msvcrt.lib、libcd.lib、msvcrtd.lib库,否则会有链接错误。

      左边的是使用的链接方式,在qmake.conf中可以找到:

QMAKE_CFLAGS_RELEASE    = -O2 -MD 
QMAKE_CFLAGS_DEBUG      = -Zi -MDd

其中说明release下使用/MD参数,debug下使用/MDd参数,该如何忽略呢?

以我使用/MDd参数时的debug为例,添加部分为红色:

QMAKE_LFLAGS_DEBUG      = /DEBUG /NODEFAULTLIB:libc.lib /NODEFAULTLIB:libcmt.lib

/NODEFAULTLIB:msvcrt.lib /NODEFAULTLIB:libcd.lib /NODEFAULTLIB:libcmtd.lib

http://www.cnblogs.com/codingmylife/archive/2010/05/08/1730832.html

原文地址:https://www.cnblogs.com/findumars/p/5837564.html