一.在pro中设置运行时库
最近在用Qt5.6.0(VS2013版本)调用一份用Visual Studio 2013编译的Debug版本静态库时出现如下错误:
error: LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(widget.obj 中)
从这个错误可以看出该Debug版本Qt5.6.0库是Qt源码通过Visual Studio 2013编译而成的,而且编译时的运行时库被设置为MDd。但是被调用的静态库通过Visual Studio 2013编译时,运行时库被设置为MTd。要避免这个错误,只能在编译时,将两者的运行时库设置成一样。
Visual Studio可在属性中设置运行时库,如下图所示:

那么在pro文件中如何设置运行时库呢?可通过如下四个qmake变量设置。
QMAKE_CFLAGS_DEBUG
This variable contains the flags for the C compiler in debug mode
QMAKE_CFLAGS_RELEASE
This variable contains the compiler flags for crea
在使用Qt5.6.0(VS2013)调用VS编译的静态库时,遇到LNK2038错误,原因是运行时库设置不一致。在pro文件中设置QMAKE_CFLAGS_DEBUG等变量可调整运行时库。同时,介绍了VS的MT、MTd、MD、MDd四种运行时库的含义,动态库需要目标机器上有对应的DLL,而静态库则不需要。混合使用不同运行时库可能导致冲突,应确保程序中使用相同类型。
订阅专栏 解锁全文
8197





