在带有Qt 5.11和Crypto ++的QtCreator中检测到“ RuntimeLibrary”不匹配

时间:2018-07-10 08:22:22

标签: c++ qt5 qt-creator crypto++

我正在尝试构建将Qt 5.11和CryptoPP 7.0.0结合在一起的项目。 我还需要静态地构建它。所以我用:

configure -release -opensource -platform win32-msvc2017 -static -nomake examples -nomake tests

这给了我qt-everywhere-src-5.11.1\build_static\lib下的所有Qt库

QtCreator使用此工具包成功构建了Qt代码,并且生成的二进制文件可以在没有Qt DLL的情况下运行,所以我认为一切都在这里。

另一方面,我拿起CryptoPP源,打开了.sln文件,设置了/ MT标志,然后在cryptlib.lib下有一个cryptopp700\x64\Output\Release\

我的Crypto ++代码成功构建,然后再次生成生成的二进制文件,而无需任何DLL。

现在,我想编译结合两个库的代码,因此选择了QtCreator。 我将这些行添加到我的.pro文件中:

QMAKE_CXXFLAGS_RELEASE = -MT
CONFIG += static
INCLUDEPATH += $$PWD/../cryptopp700
DEPENDPATH += $$PWD/../cryptopp700
LIBS += $$PWD/../cryptopp700/x64/Output/Release/cryptlib.lib

QMake运行没有错误,但是在编译时,我遇到了数百个错误,例如:

LNK 2038 : mismatch detected for 'RuntimeLibrary' : MD_DynamicRelease 
doesn't match with 'MT_StaticRelease' in main.obj

每个Qt .lib文件都有这个。

我最后尝试做的是通过设置qt-everywhere-src-5.11.1\build_static\mkspecs\win32-msvc\qmake.conf下的qmake.conf:

QMAKE_CFLAGS           += /MT
QMAKE_CXXFLAGS         += /MT

但这并不能解决任何问题。 看来这2个库之一不是静态构建的,但是由于它们是静态构建的,所以我不知道现在在哪里搜索...

0 个答案:

没有答案