Qt+VS编译器:默认库“library”与其他库的使用冲突;使用 /NODEFAULTLIB:library
找到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
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步