我是Windows和Qt开发的新手,我正在尝试使用静态链接构建我的应用,以避免在缺少"missing msvcp140.dll"
的系统上出现Visual C++ Redistibutable
等错误。我知道有其他解决方案可以解决这个问题,但我仍然希望使用静态链接构建我的应用程序,只有一个人可以启动的可执行文件。
我使用的是Windows 7 x64并使用我使用those命令从静态链接构建的最新Qt5版本:perl init-repository && configure -developer-build -opensource -confirm-license -nomake examples -nomake tests -static && SET CL=/MP && configure -developer-build -opensource -confirm-license -nomake examples -nomake tests -static -opengl desktop && nmake
然后我使用nmake
中的Visual Studio 2015
进行编译。
这是我项目中的.pro文件:
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = LauncherCPC
TEMPLATE = app
SOURCES += main.cpp\
mainwindow.cpp
HEADERS += mainwindow.h
FORMS += mainwindow.ui
RESOURCES = resources.qrc
RC_FILE = LauncherCPC.rc
CONFIG += static
#CONFIG += staticlib
CONFIG += debug_and_release
DEFINES += QT_NODLL
DEFINES += QT_STATIC_BUILD
QMAKE_CFLAGS_RELEASE += /MT
QMAKE_CXXFLAGS_RELEASE += /MT
QMAKE_CFLAGS_RELEASE -= -MD
QMAKE_CXXFLAGS_RELEASE -= -MD
以下是我在启动nmake
时遇到的错误(我删除了日志中的一些错误,因为它们完全相同且太多了):
"D:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\amd64\nmake.exe" -f Makefile.Release
call D:\Divers\Programmation\QT\LauncherCPC\uic_wrapper.bat mainwindow.ui -o ui_mainwindow.h
D:\ProgramData\qt5\qtbase\bin\rcc.exe -name resources resources.qrc -o release\qrc_resources.cpp
D:\ProgramData\qt5\qtbase\bin\moc.exe -DUNICODE -DWIN32 -DWIN64 -DQT_NODLL -DQT_STATIC_BUILD -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DNDEBUG -D_MSC_VER=1900 -D_WIN32 -D_WIN64 -ID:/ProgramData/qt5/qtbase/mkspecs/win32-msvc2015 -ID:/Divers/Programmation/QT/LauncherCPC -ID:/ProgramData/qt5/qtbase/include -ID:/ProgramData/qt5/qtbase/include/QtWidgets -ID:/ProgramData/qt5/qtbase/include/QtGui -ID:/ProgramData/qt5/qtbase/include/QtCore mainwindow.h -o release\moc_mainwindow.cpp
rc -DUNICODE -DWIN32 -DWIN64 -DQT_NODLL -DQT_STATIC_BUILD -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DNDEBUG -fo release\LauncherCPC.res LauncherCPC.rc
Microsoft (R) Windows (R) Resource Compiler Version 10.0.10011.16384
Copyright (C) Microsoft Corporation. All rights reserved.
cl -c -nologo -Zc:wchar_t -FS -Zc:strictStrings -Zc:throwingNew -O2 /MT -GR -W3 -w34100 -w34189 -w44996 -w44456 -w44457 -w44458 -wd4577 -EHsc -DUNICODE -DWIN32 -DWIN64 -DQT_NODLL -DQT_STATIC_BUILD -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DNDEBUG -I. -I..\..\..\..\ProgramData\qt5\qtbase\include -I..\..\..\..\ProgramData\qt5\qtbase\include\QtWidgets -I..\..\..\..\ProgramData\qt5\qtbase\include\QtGui -I..\..\..\..\ProgramData\qt5\qtbase\include\QtCore -Irelease -I. -I..\..\..\..\ProgramData\qt5\qtbase\mkspecs\win32-msvc2015 -Forelease\ @C:\Users\Redleouf\AppData\Local\Temp\nmD195.tmp
main.cpp
mainwindow.cpp
launchercpc_plugin_import.cpp
Generating Code...
cl -c -nologo -Zc:wchar_t -FS -Zc:strictStrings -Zc:throwingNew -O2 /MT -GR -W3 -w34100 -w34189 -w44996 -w44456 -w44457 -w44458 -wd4577 -EHsc -DUNICODE -DWIN32 -DWIN64 -DQT_NODLL -DQT_STATIC_BUILD -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DNDEBUG -I. -I..\..\..\..\ProgramData\qt5\qtbase\include -I..\..\..\..\ProgramData\qt5\qtbase\include\QtWidgets -I..\..\..\..\ProgramData\qt5\qtbase\include\QtGui -I..\..\..\..\ProgramData\qt5\qtbase\include\QtCore -Irelease -I. -I..\..\..\..\ProgramData\qt5\qtbase\mkspecs\win32-msvc2015 -Forelease\ @C:\Users\Redleouf\AppData\Local\Temp\nmDB56.tmp
qrc_resources.cpp
moc_mainwindow.cpp
Generating Code...
link /NOLOGO /DYNAMICBASE /NXCOMPAT /INCREMENTAL:NO /SUBSYSTEM:WINDOWS "/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" /MANIFEST:embed /OUT:release\LauncherCPC.exe @C:\Users\Redleouf\AppData\Local\Temp\nmECF4.tmp
Qt5Widgets.lib(qwidget.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MT_StaticRelease' in main.obj
...
Qt5Core.lib(cached-powers.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MT_StaticRelease' in main.obj
msvcprt.lib(MSVCP140.dll) : error LNK2005: "void __cdecl std::_Xbad_alloc(void)" (?_Xbad_alloc@std@@YAXXZ) already defined in libcpmt.lib(xthrow.obj)
msvcprt.lib(MSVCP140.dll) : error LNK2005: "void __cdecl std::_Xlength_error(char const *)" (?_Xlength_error@std@@YAXPEBD@Z) already defined in libcpmt.lib(xthrow.obj)
qtmain.lib(qtmain_win.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MT_StaticRelease' in main.obj
LINK : warning LNK4098: defaultlib 'MSVCRT' conflicts with use of other libs; use /NODEFAULTLIB:library
qtpcre.lib(pcre16_jit_compile.obj) : warning LNK4049: locally defined symbol memmove imported
Qt5Core.lib(fast-dtoa.obj) : warning LNK4049: locally defined symbol memmove imported
...
Qt5Core.lib(qdatetimeparser.obj) : warning LNK4217: locally defined symbol memmove imported in function "public: bool __cdecl QDateTimeParser::parseFormat(class QString const &)" (?parseFormat@QDateTimeParser@@QEAA_NAEBVQString@@@Z)
...
Qt5Core.lib(qdir.obj) : warning LNK4217: locally defined symbol memmove imported in function __catch$??$_Construct@PEAVQPointF@@@?$vector@VQPointF@@V?$allocator@VQPointF@@@std@@@std@@QEAAXPEAVQPointF@@0Uforward_iterator_tag@1@@Z$0
...
Qt5Core.lib(qdatetime.obj) : warning LNK4217: locally defined symbol memmove imported in function __catch$?detach_helper_grow@?$QList@VQPointF@@@@AEAAPEAUNode@1@HH@Z$2
...
Qt5Core.lib(qabstractitemmodel.obj) : warning LNK4217: locally defined symbol memmove imported in function "protected: void __cdecl QAbstractItemModel::endMoveRows(void)" (?endMoveRows@QAbstractItemModel@@IEAAXXZ)
...
Qt5Gui.lib(qtexthtmlparser.obj) : warning LNK4217: locally defined symbol memmove imported in function "public: void __cdecl QTextHtmlParserNode::applyCssDeclarations(class QVector<struct QCss::Declaration> const &,class QTextDocument const *)" (?applyCssDeclarations@QTextHtmlParserNode@@QEAAXAEBV?$QVector@UDeclaration@QCss@@@@PEBVQTextDocument@@@Z)
...
Qt5Widgets.lib(qgraphicsitem.obj) : warning LNK4217: locally defined symbol memmove imported in function "public: struct QGraphicsItemPrivate::ExtraStruct * __cdecl QVector<struct QGraphicsItemPrivate::ExtraStruct>::erase(struct QGraphicsItemPrivate::ExtraStruct *,struct QGraphicsItemPrivate::ExtraStruct *)" (?erase@?$QVector@UExtraStruct@QGraphicsItemPrivate@@@@QEAAPEAUExtraStruct@QGraphicsItemPrivate@@PEAU23@0@Z)
...
Qt5Core.lib(qbytearray.obj) : warning LNK4217: locally defined symbol free imported in function "public: class QByteArray & __cdecl QByteArray::prepend(class QByteArray const &)" (?prepend@QByteArray@@QEAAAEAV1@AEBV1@@Z)
...
qtharfbuzzng.lib(hb-ot-shape-complex-arabic.obj) : warning LNK4217: locally defined symbol free imported in function "public: bool __cdecl OT::SubstLookup::serialize_ligature(struct OT::hb_serialize_context_t *,unsigned int,struct OT::Supplier<struct OT::GlyphID> &,struct OT::Supplier<unsigned int> &,unsigned int,struct OT::Supplier<struct OT::GlyphID> &,struct OT::Supplier<unsigned int> &,struct OT::Supplier<struct OT::GlyphID> &)" (?serialize_ligature@SubstLookup@OT@@QEAA_NPEAUhb_serialize_context_t@2@IAEAU?$Supplier@UGlyphID@OT@@@2@AEAU?$Supplier@I@2@I121@Z)
...
Qt5Gui.lib(qtexttable.obj) : warning LNK4217: locally defined symbol free imported in function "public: void __cdecl QTextTable::mergeCells(int,int,int,int)" (?mergeCells@QTextTable@@QEAAXHHHH@Z)
...
Qt5Widgets.lib(qsplitter.obj) : warning LNK4217: locally defined symbol free imported in function "public: void * __cdecl QtSharedPointer::ExternalRefCountData::`scalar deleting destructor'(unsigned int)" (??_GExternalRefCountData@QtSharedPointer@@QEAAPEAXI@Z)
Qt5Widgets.lib(qwidgetbackingstore.obj) : warning LNK4217: locally defined symbol free imported in function "public: __cdecl QVarLengthArray<class QWidget *,16>::~QVarLengthArray<class QWidget *,16>(void)" (??1?$QVarLengthArray@PEAVQWidget@@$0BA@@@QEAA@XZ)
Qt5Widgets.lib(qmainwindowlayout.obj) : warning LNK4049: locally defined symbol free imported
Qt5Widgets.lib(qgridlayout.obj) : warning LNK4049: locally defined symbol free imported
Qt5Widgets.lib(qlayoutengine.obj) : warning LNK4049: locally defined symbol free imported
qtpcre.lib(pcre16_globals.obj) : warning LNK4049: locally defined symbol malloc imported
Qt5Core.lib(qmutexpool.obj) : warning LNK4049: locally defined symbol malloc imported
...
Qt5Gui.lib(qtexttable.obj) : warning LNK4217: locally defined symbol malloc imported in function "public: void __cdecl QTextTable::removeColumns(int,int)" (?removeColumns@QTextTable@@QEAAXHH@Z)
...
Qt5Widgets.lib(qwidgetbackingstore.obj) : warning LNK4217: locally defined symbol malloc imported in function "public: __cdecl QVarLengthArray<class QWidget *,16>::QVarLengthArray<class QWidget *,16>(int)" (??0?$QVarLengthArray@PEAVQWidget@@$0BA@@@QEAA@H@Z)
...
Qt5Widgets.lib(qmessagebox.obj) : warning LNK4217: locally defined symbol strchr imported in function "public: void __cdecl QMessageBox::open(class QObject *,char const *)" (?open@QMessageBox@@QEAAXPEAVQObject@@PEBD@Z)
qtharfbuzzng.lib(hb-ot-tag.obj) : warning LNK4049: locally defined symbol strchr imported
qtharfbuzzng.lib(hb-shaper.obj) : warning LNK4049: locally defined symbol strchr imported
Qt5Core.lib(qobject.obj) : warning LNK4049: locally defined symbol strchr imported
Qt5Core.lib(qmimemagicrule.obj) : warning LNK4049: locally defined symbol _invalid_parameter_noinfo_noreturn imported
Qt5Core.lib(moc_qfilesystemwatcher_polling_p.obj) : warning LNK4049: locally defined symbol _invalid_parameter_noinfo_noreturn imported
Qt5Core.lib(qfsfileengine_iterator.obj) : warning LNK4049: locally defined symbol _invalid_parameter_noinfo_noreturn imported
...
Qt5Gui.lib(qcssparser.obj) : warning LNK4217: locally defined symbol _invalid_parameter_noinfo_noreturn imported in function "public: enum QCss::PositionMode __cdecl QCss::Declaration::positionValue(void)const " (?positionValue@Declaration@QCss@@QEBA?AW4PositionMode@2@XZ)
...
qwindows.lib(qwindowsglcontext.obj) : warning LNK4217: locally defined symbol _invalid_parameter_noinfo_noreturn imported in function "private: __cdecl QOpenGLStaticContext::QOpenGLStaticContext(void)" (??0QOpenGLStaticContext@@AEAA@XZ)
qwindows.lib(iaccessible2.obj) : warning LNK4049: locally defined symbol _invalid_parameter_noinfo_noreturn imported
Qt5Gui.lib(qbrush.obj) : warning LNK4217: locally defined symbol _invalid_parameter_noinfo_noreturn imported in function "class QNullBrushData * __cdecl `anonymous namespace'::Q_QGS_nullBrushInstance_holder::innerFunction(void)" (?innerFunction@Q_QGS_nullBrushInstance_holder@?A0x7e294c07@@YAPEAVQNullBrushData@@XZ)
Qt5Gui.lib(qkeysequence.obj) : warning LNK4049: locally defined symbol _invalid_parameter_noinfo_noreturn imported
Qt5Widgets.lib(qlineedit_p.obj) : warning LNK4049: locally defined symbol _invalid_parameter_noinfo_noreturn imported
Qt5Widgets.lib(qcalendarwidget.obj) : warning LNK4049: locally defined symbol _invalid_parameter_noinfo_noreturn imported
Qt5Widgets.lib(qdirmodel.obj) : warning LNK4049: locally defined symbol _invalid_parameter_noinfo_noreturn imported
Qt5Widgets.lib(qfileinfogatherer.obj) : warning LNK4049: locally defined symbol _invalid_parameter_noinfo_noreturn imported
Qt5Widgets.lib(qaction.obj) : warning LNK4217: locally defined symbol _invalid_parameter_noinfo_noreturn imported in function "class stdext::checked_array_iterator<class QKeySequence const *> __cdecl stdext::make_checked_array_iterator<class QKeySequence const *>(class QKeySequence const *,unsigned __int64,unsigned __int64)" (??$make_checked_array_iterator@PEBVQKeySequence@@@stdext@@YA?AV?$checked_array_iterator@PEBVQKeySequence@@@0@PEBVQKeySequence@@_K1@Z)
Qt5Widgets.lib(qlineedit.obj) : warning LNK4049: locally defined symbol _invalid_parameter_noinfo_noreturn imported
Qt5Widgets.lib(qerrormessage.obj) : warning LNK4049: locally defined symbol _invalid_parameter_noinfo_noreturn imported
Qt5Widgets.lib(qwidgetlinecontrol.obj) : warning LNK4049: locally defined symbol _invalid_parameter_noinfo_noreturn imported
Qt5Core.lib(bignum.obj) : warning LNK4217: locally defined symbol exit imported in function "public: void __cdecl double_conversion::Bignum::AddUInt64(unsigned __int64)" (?AddUInt64@Bignum@double_conversion@@QEAAX_K@Z)
Qt5Core.lib(double-conversion.obj) : warning LNK4049: locally defined symbol exit imported
Qt5Core.lib(bignum-dtoa.obj) : warning LNK4049: locally defined symbol exit imported
Qt5Core.lib(fast-dtoa.obj) : warning LNK4049: locally defined symbol exit imported
Qt5Core.lib(strtod.obj) : warning LNK4049: locally defined symbol exit imported
Qt5Widgets.lib(qerrormessage.obj) : warning LNK4217: locally defined symbol exit imported in function "protected: virtual void __cdecl QErrorMessage::done(int)" (?done@QErrorMessage@@MEAAXH@Z)
Qt5Gui.lib(qwindow.obj) : warning LNK4049: locally defined symbol exit imported
Qt5Gui.lib(jerror.obj) : warning LNK4049: locally defined symbol exit imported
Qt5Core.lib(qlogging.obj) : warning LNK4049: locally defined symbol exit imported
...
qtiff.lib(tif_predict.obj) : warning LNK4217: locally defined symbol __stdio_common_vfprintf imported in function PredictorSetupDecode
Qt5Gui.lib(qguiapplication.obj) : warning LNK4217: locally defined symbol isdigit imported in function "public: static struct QWindowGeometrySpecification __cdecl QWindowGeometrySpecification::fromArgument(class QByteArray const &)" (?fromArgument@QWindowGeometrySpecification@@SA?AU1@AEBVQByteArray@@@Z)
Qt5Gui.lib(qppmhandler.obj) : warning LNK4049: locally defined symbol isdigit imported
Qt5Gui.lib(qxbmhandler.obj) : warning LNK4049: locally defined symbol isdigit imported
qtpcre.lib(pcre16_compile.obj) : warning LNK4049: locally defined symbol isdigit imported
Qt5Gui.lib(qppmhandler.obj) : warning LNK4217: locally defined symbol isspace imported in function "bool __cdecl read_pbm_header(class QIODevice *,char &,int &,int &,int &)" (?read_pbm_header@@YA_NPEAVQIODevice@@AEADAEAH22@Z)
Qt5Gui.lib(qxbmhandler.obj) : warning LNK4217: locally defined symbol strcpy_s imported in function "bool __cdecl write_xbm_image(class QImage const &,class QIODevice *,class QString const &)" (?write_xbm_image@@YA_NAEBVQImage@@PEAVQIODevice@@AEBVQString@@@Z)
...
Qt5Core.lib(qfilesystemengine_win.obj) : warning LNK4049: locally defined symbol _errno imported
qtpng.lib(pngread.obj) : warning LNK4217: locally defined symbol _errno imported in function png_image_begin_read_from_file
qtpng.lib(pngwrite.obj) : warning LNK4049: locally defined symbol _errno imported
qtharfbuzzng.lib(hb-shape.obj) : warning LNK4217: locally defined symbol _errno imported in function "bool __cdecl parse_bool(char const * *,char const *,unsigned int *)" (?parse_bool@@YA_NPEAPEBDPEBDPEAI@Z)
qtharfbuzzng.lib(hb-font.obj) : warning LNK4049: locally defined symbol _errno imported
qtpng.lib(pngerror.obj) : warning LNK4217: locally defined symbol abort imported in function png_safe_error
qtharfbuzzng.lib(hb-shape.obj) : warning LNK4217: locally defined symbol strtol imported in function "bool __cdecl parse_uint(char const * *,char const *,unsigned int *)" (?parse_uint@@YA_NPEAPEBDPEBDPEAI@Z)
qtharfbuzzng.lib(hb-font.obj) : warning LNK4217: locally defined symbol strtoul imported in function "int __cdecl hb_codepoint_parse(char const *,unsigned int,int,unsigned int *)" (?hb_codepoint_parse@@YAHPEBDIHPEAI@Z)
Qt5Core.lib(qbytearray.obj) : warning LNK4217: locally defined symbol strncpy_s imported in function "char * __cdecl qstrncpy(char *,char const *,unsigned int)" (?qstrncpy@@YAPEADPEADPEBDI@Z)
Qt5Core.lib(qcoreapplication.obj) : warning LNK4217: locally defined symbol __p___argc imported in function "bool __cdecl isArgvModified(int,char * *)" (?isArgvModified@@YA_NHPEAPEAD@Z)
...
Qt5Core.lib(qfsfileengine.obj) : warning LNK4217: locally defined symbol _write imported in function "public: __int64 __cdecl QFSFileEnginePrivate::writeFdFh(char const *,__int64)" (?writeFdFh@QFSFileEnginePrivate@@QEAA_JPEBD_J@Z)
Qt5Core.lib(qfsfileengine_win.obj) : warning LNK4217: locally defined symbol _fileno imported in function "public: bool __cdecl QFSFileEnginePrivate::doStat(class QFlags<enum QFileSystemMetaData::MetaDataFlag>)const " (?doStat@QFSFileEnginePrivate@@QEBA_NV?$QFlags@W4MetaDataFlag@QFileSystemMetaData@@@@@Z)
Qt5Core.lib(qfsfileengine_win.obj) : warning LNK4217: locally defined symbol _open_osfhandle imported in function "public: int __cdecl QFSFileEnginePrivate::nativeHandle(void)const " (?nativeHandle@QFSFileEnginePrivate@@QEBAHXZ)
...
Qt5Widgets.lib(qwindowsxpstyle.obj) : error LNK2019: unresolved external symbol __imp_wcsrchr referenced in function "public: virtual void __cdecl QWindowsXPStyle::drawPrimitive(enum QStyle::PrimitiveElement,class QStyleOption const *,class QPainter *,class QWidget const *)const " (?drawPrimitive@QWindowsXPStyle@@UEBAXW4PrimitiveElement@QStyle@@PEBVQStyleOption@@PEAVQPainter@@PEBVQWidget@@@Z)
...
Qt5Gui.lib(qstroker.obj) : error LNK2001: unresolved external symbol __imp__dtest
Qt5Core.lib(qnumeric.obj) : error LNK2001: unresolved external symbol __imp__dtest
Qt5Core.lib(qline.obj) : error LNK2001: unresolved external symbol __imp__dtest
Qt5Gui.lib(qxpmhandler.obj) : error LNK2019: unresolved external symbol __imp___stdio_common_vsscanf referenced in function _vsscanf_s_l
Qt5Gui.lib(jmemmgr.obj) : error LNK2001: unresolved external symbol __imp___stdio_common_vsscanf
Qt5Gui.lib(jmemmgr.obj) : error LNK2019: unresolved external symbol __imp_getenv referenced in function jinit_memory_mgr
qtharfbuzzng.lib(hb-common.obj) : error LNK2001: unresolved external symbol __imp_getenv
qtharfbuzzng.lib(hb-shaper.obj) : error LNK2001: unresolved external symbol __imp_getenv
qtpng.lib(pngread.obj) : error LNK2019: unresolved external symbol __imp_strerror referenced in function png_image_begin_read_from_file
qtpng.lib(pngwrite.obj) : error LNK2001: unresolved external symbol __imp_strerror
Qt5Core.lib(qsystemerror.obj) : error LNK2001: unresolved external symbol __imp_strerror
qtpng.lib(png.obj) : error LNK2019: unresolved external symbol __imp_frexp referenced in function png_ascii_from_fp
qtpng.lib(png.obj) : error LNK2019: unresolved external symbol __imp_modf referenced in function png_ascii_from_fp
qtpng.lib(pngget.obj) : error LNK2019: unresolved external symbol __imp_atof referenced in function png_get_sCAL
qtpng.lib(pngwrite.obj) : error LNK2019: unresolved external symbol __imp_ferror referenced in function png_image_write_to_file
qtpng.lib(pngwrite.obj) : error LNK2019: unresolved external symbol __imp_remove referenced in function png_image_write_to_file
qtpng.lib(pngwrite.obj) : error LNK2019: unresolved external symbol __imp__gmtime64 referenced in function gmtime
qtpng.lib(pngwio.obj) : error LNK2019: unresolved external symbol __imp_fwrite referenced in function png_default_write_data
Qt5Core.lib(qfsfileengine.obj) : error LNK2001: unresolved external symbol __imp_fwrite
qtharfbuzzng.lib(hb-common.obj) : error LNK2019: unresolved external symbol __imp_strdup referenced in function "public: struct hb_language_item_t & __cdecl hb_language_item_t::operator=(char const *)" (??4hb_language_item_t@@QEAAAEAU0@PEBD@Z)
OLDNAMES.lib(strdup.obi) : error LNK2001: unresolved external symbol __imp_strdup
qtharfbuzzng.lib(hb-common.obj) : error LNK2019: unresolved external symbol __imp_setlocale referenced in function hb_language_get_default
Qt5Core.lib(qglobal.obj) : error LNK2019: unresolved external symbol __imp_srand referenced in function "void __cdecl qsrand(unsigned int)" (?qsrand@@YAXI@Z)
Qt5Core.lib(qglobal.obj) : error LNK2019: unresolved external symbol __imp_getenv_s referenced in function "int __cdecl qEnvironmentVariableIntValue(char const *,bool *)" (?qEnvironmentVariableIntValue@@YAHPEBDPEA_N@Z)
Qt5Core.lib(qglobal.obj) : error LNK2019: unresolved external symbol __imp__putenv_s referenced in function "bool __cdecl qputenv(char const *,class QByteArray const &)" (?qputenv@@YA_NPEBDAEBVQByteArray@@@Z)
Qt5Core.lib(qnumeric.obj) : error LNK2019: unresolved external symbol __imp__fdtest referenced in function "bool __cdecl isfinite<float>(float)" (??$isfinite@M@@YA_NM@Z)
Qt5Core.lib(qdatetime.obj) : error LNK2019: unresolved external symbol __imp__get_timezone referenced in function "bool __cdecl epochMSecsToLocalTime(__int64,class QDate *,class QTime *,enum QDateTimePrivate::DaylightStatus *)" (?epochMSecsToLocalTime@@YA_N_JPEAVQDate@@PEAVQTime@@PEAW4DaylightStatus@QDateTimePrivate@@@Z)
Qt5Core.lib(qdatetime.obj) : error LNK2019: unresolved external symbol __imp__get_tzname referenced in function "class QString __cdecl qt_tzname(enum QDateTimePrivate::DaylightStatus)" (?qt_tzname@@YA?AVQString@@W4DaylightStatus@QDateTimePrivate@@@Z)
Qt5Core.lib(qdatetime.obj) : error LNK2019: unresolved external symbol __imp__localtime64_s referenced in function "bool __cdecl qt_localtime(__int64,class QDate *,class QTime *,enum QDateTimePrivate::DaylightStatus *)" (?qt_localtime@@YA_N_JPEAVQDate@@PEAVQTime@@PEAW4DaylightStatus@QDateTimePrivate@@@Z)
Qt5Core.lib(qdatetime.obj) : error LNK2019: unresolved external symbol __imp__mktime64 referenced in function "__int64 __cdecl qt_mktime(class QDate *,class QTime *,enum QDateTimePrivate::DaylightStatus *,class QString *,bool *)" (?qt_mktime@@YA_JPEAVQDate@@PEAVQTime@@PEAW4DaylightStatus@QDateTimePrivate@@PEAVQString@@PEA_N@Z)
Qt5Core.lib(qdatetime.obj) : error LNK2019: unresolved external symbol __imp__tzset referenced in function "bool __cdecl epochMSecsToLocalTime(__int64,class QDate *,class QTime *,enum QDateTimePrivate::DaylightStatus *)" (?epochMSecsToLocalTime@@YA_N_JPEAVQDate@@PEAVQTime@@PEAW4DaylightStatus@QDateTimePrivate@@@Z)
Qt5Core.lib(qfile.obj) : error LNK2019: unresolved external symbol __imp__ftelli64 referenced in function "public: bool __cdecl QFile::open(struct _iobuf *,class QFlags<enum QIODevice::OpenModeFlag>,class QFlags<enum QFileDevice::FileHandleFlag>)" (?open@QFile@@QEAA_NPEAU_iobuf@@V?$QFlags@W4OpenModeFlag@QIODevice@@@@V?$QFlags@W4FileHandleFlag@QFileDevice@@@@@Z)
Qt5Core.lib(qfsfileengine.obj) : error LNK2001: unresolved external symbol __imp__ftelli64
Qt5Core.lib(qthread_win.obj) : error LNK2019: unresolved external symbol __imp__beginthreadex referenced in function "public: void __cdecl QThread::start(enum QThread::Priority)" (?start@QThread@@QEAAXW4Priority@1@@Z)
Qt5Core.lib(qthread_win.obj) : error LNK2019: unresolved external symbol __imp__endthreadex referenced in function "protected: static void __cdecl QThread::setTerminationEnabled(bool)" (?setTerminationEnabled@QThread@@KAX_N@Z)
Qt5Core.lib(qsimd.obj) : error LNK2019: unresolved external symbol __imp_puts referenced in function "void __cdecl qDumpCPUFeatures(void)" (?qDumpCPUFeatures@@YAXXZ)
Qt5Core.lib(qcoreapplication_win.obj) : error LNK2019: unresolved external symbol __imp__strdup referenced in function "void __cdecl qWinMain(struct HINSTANCE__ *,struct HINSTANCE__ *,char *,int,int &,class QVector<char *> &)" (?qWinMain@@YAXPEAUHINSTANCE__@@0PEADHAEAHAEAV?$QVector@PEAD@@@Z)
OLDNAMES.lib(strdup.obi) : error LNK2001: unresolved external symbol __imp__strdup
Qt5Core.lib(qfilesystemengine_win.obj) : error LNK2019: unresolved external symbol __imp__waccess referenced in function "public: static bool __cdecl QFileSystemEngine::fillPermissions(class QFileSystemEntry const &,class QFileSystemMetaData &,class QFlags<enum QFileSystemMetaData::MetaDataFlag>)" (?fillPermissions@QFileSystemEngine@@SA_NAEBVQFileSystemEntry@@AEAVQFileSystemMetaData@@V?$QFlags@W4MetaDataFlag@QFileSystemMetaData@@@@@Z)
Qt5Core.lib(qfilesystemengine_win.obj) : error LNK2019: unresolved external symbol __imp__wchmod referenced in function "public: static bool __cdecl QFileSystemEngine::setPermissions(class QFileSystemEntry const &,class QFlags<enum QFileDevice::Permission>,class QSystemError &,class QFileSystemMetaData *)" (?setPermissions@QFileSystemEngine@@SA_NAEBVQFileSystemEntry@@V?$QFlags@W4Permission@QFileDevice@@@@AEAVQSystemError@@PEAVQFileSystemMetaData@@@Z)
Qt5Core.lib(qfsfileengine.obj) : error LNK2019: unresolved external symbol __imp_feof referenced in function "public: virtual bool __cdecl QFSFileEngine::extension(enum QAbstractFileEngine::Extension,class QAbstractFileEngine::ExtensionOption const *,class QAbstractFileEngine::ExtensionReturn *)" (?extension@QFSFileEngine@@UEAA_NW4Extension@QAbstractFileEngine@@PEBVExtensionOption@3@PEAVExtensionReturn@3@@Z)
Qt5Core.lib(qfsfileengine_win.obj) : error LNK2001: unresolved external symbol __imp_feof
Qt5Core.lib(qfsfileengine.obj) : error LNK2019: unresolved external symbol __imp_fgets referenced in function "public: __int64 __cdecl QFSFileEnginePrivate::readLineFdFh(char *,__int64)" (?readLineFdFh@QFSFileEnginePrivate@@QEAA_JPEAD_J@Z)
Qt5Core.lib(qfsfileengine.obj) : error LNK2019: unresolved external symbol __imp__fseeki64 referenced in function "public: bool __cdecl QFSFileEnginePrivate::openFh(class QFlags<enum QIODevice::OpenModeFlag>,struct _iobuf *)" (?openFh@QFSFileEnginePrivate@@QEAA_NV?$QFlags@W4OpenModeFlag@QIODevice@@@@PEAU_iobuf@@@Z)
Qt5Core.lib(qfsfileengine.obj) : error LNK2019: unresolved external symbol __imp__read referenced in function "public: __int64 __cdecl QFSFileEnginePrivate::readFdFh(char *,__int64)" (?readFdFh@QFSFileEnginePrivate@@QEAA_JPEAD_J@Z)
Qt5Core.lib(qfsfileengine_win.obj) : error LNK2019: unresolved external symbol __imp__wgetdcwd referenced in function "public: static class QString __cdecl QFSFileEngine::currentPath(class QString const &)" (?currentPath@QFSFileEngine@@SA?AVQString@@AEBV2@@Z)
Qt5Core.lib(qfsfileengine_win.obj) : error LNK2019: unresolved external symbol __imp__getdrive referenced in function "public: static class QString __cdecl QFSFileEngine::currentPath(class QString const &)" (?currentPath@QFSFileEngine@@SA?AVQString@@AEBV2@@Z)
release\LauncherCPC.exe : fatal error LNK1120: 48 unresolved externals
为什么会这样?如何使用静态链接正确构建我的应用程序?我尝试使用Visual Studio 2015
和Qt5 Add-On
,但它也是如此(我在设置中将编辑从MD
更改为MT
。
我已经在互联网上阅读了很多关于所有这些的问题和答案,但没有一个解决方案似乎有效。我觉得我的Qt5版本不是那么静态,但应该是。
请注意,我的项目文件夹中还有一个文件,该文件在.pro文件中不存在:ui_mainwindow.h
。它似乎是由Qt生成的,我不知道是否应该将它添加到我的.pro文件中。