Qt5.13.0静态编译

所用到的库,都上传到了github

https://github.com/nangongyuan/Qt-5.13.0-.git

 

所需包含的头文件,这里直接用了绝对路径,实际使用中最好不要

E:\Qt\Qt5.13.0\5.13.0\Src\qtbase\include\QtCore
E:\Qt\Qt5.13.0\5.13.0\Src\qtbase\include\QtGui
E:\Qt\Qt5.13.0\5.13.0\Src\qtbase\include\QtWidgets
E:\Qt\Qt5.13.0\5.13.0\Src\qtbase\include\

运行库改成MTD,Release就是MT,依赖静态运行库

 

附加库目录

E:\Qt\Qt5.13.0\5.13.0\Src\qtbase\lib
E:\Qt\Qt5.13.0\5.13.0\Src\qtbase\plugins\platforms

 

附加依赖项

qtmaind.lib
Qt5Cored.lib
Qt5Guid.lib
Qt5Widgetsd.lib
Qt5ThemeSupportd.lib
Qt5WindowsUIAutomationSupportd.lib
Qt5FontDatabaseSupportd.lib
Qt5EventDispatcherSupportd.lib
qtlibpngd.lib
qminimald.lib
qwindowsd.lib
qtpcre2d.lib
qtfreetyped.lib
qtharfbuzzd.lib
winmm.lib
glu32.lib
gdi32.lib
kernel32.lib
user32.lib
shell32.lib
uuid.lib
ole32.lib
advapi32.lib
mpr.lib
version.lib
Netapi32.lib
Userenv.lib
Dwmapi.lib
Wtsapi32.lib
ws2_32.lib
imm32.lib

 

main.cpp中加上

#include <QtPlugin>
Q_IMPORT_PLUGIN(QWindowsIntegrationPlugin)

即可依赖QT静态库

 

遇到的一些问题

1>qwindowsd.lib(qwindowscontext.obj) : error LNK2019: 无法解析的外部符号 _WTSQuerySessionInformationW@20,该符号在函数 "public: static bool __cdecl QWindowsContext::isSessionLocked(void)" (?isSessionLocked@QWindowsContext@@SA_NXZ) 中被引用
1>qwindowsd.lib(qwindowscontext.obj) : error LNK2019: 无法解析的外部符号 _WTSFreeMemory@4,该符号在函数 "public: static bool __cdecl QWindowsContext::isSessionLocked(void)" (?isSessionLocked@QWindowsContext@@SA_NXZ) 中被引用
1>G:\C++ Demo\TestMT\TestMT\Debug\ConsoleApplication1.exe : fatal error LNK1120: 2 个无法解析的外部命令

_WTSQuerySessionInformationW

_WTSFreeMemory

查询可以发现,这2个函数在Wtsapi32中,在依赖项中加入Wtsapi32.lib中即可解决

 

1>qwindowsd.lib(qwindowswindow.obj) : error LNK2019: 无法解析的外部符号 __imp__DwmEnableBlurBehindWindow@8,该符号在函数 "bool __cdecl applyBlurBehindWindow(struct HWND__ *)" (?applyBlurBehindWindow@@YA_NPAUHWND__@@@Z) 中被引用
1>qwindowsd.lib(qwindowswindow.obj) : error LNK2019: 无法解析的外部符号 __imp__DwmIsCompositionEnabled@4,该符号在函数 "bool __cdecl applyBlurBehindWindow(struct HWND__ *)" (?applyBlurBehindWindow@@YA_NPAUHWND__@@@Z) 中被引用
1>G:\C++ Demo\TestMT\TestMT\Debug\ConsoleApplication1.exe : fatal error LNK1120: 2 个无法解析的外部命令

DwmEnableBlurBehindWindow

DwmIsCompositionEnabled

这2个函数在Dwmapi.中,缺少Dwmapi.lib

 

1>Qt5Cored.lib(qfilesystemengine_win.obj) : error LNK2019: 无法解析的外部符号 __imp__GetUserProfileDirectoryW@12,该符号在函数 "public: static class QString __cdecl QFileSystemEngine::homePath(void)" (?homePath@QFileSystemEngine@@SA?AVQString@@XZ) 中被引用
1>G:\C++ Demo\TestMT\TestMT\Debug\ConsoleApplication1.exe : fatal error LNK1120: 1 个无法解析的外部命令

__imp__GetUserProfileDirectoryW

在Userenv中,依赖项中添加Userenv.lib

 

1>Qt5Cored.lib(qregularexpression.obj) : error LNK2019: 无法解析的外部符号 _pcre2_config_16,该符号在函数 "public: void __thiscall QRegularExpressionPrivate::getPatternInfo(void)" (?getPatternInfo@QRegularExpressionPrivate@@QAEXXZ) 中被引用
1>Qt5Cored.lib(qregularexpression.obj) : error LNK2019: 无法解析的外部符号 _pcre2_match_context_create_16,该符号在函数 "public: struct QRegularExpressionMatchPrivate * __thiscall QRegularExpressionPrivate::doMatch(class QString const &,int,int,int,enum QRegularExpression::MatchType,class QFlags<enum QRegularExpression::MatchOption>,enum QRegularExpressionPrivate::CheckSubjectStringOption,struct QRegularExpressionMatchPrivate const *)const " (?doMatch@QRegularExpressionPrivate@@QBEPAUQRegularExpressionMatchPrivate@@ABVQString@@HHHW4MatchType@QRegularExpression@@V?$QFlags@W4MatchOption@QRegularExpression@@@@W4CheckSubjectStringOption@1@PBU2@@Z) 中被引用
1>Qt5Cored.lib(qregularexpression.obj) : error LNK2019: 无法解析的外部符号 _pcre2_match_context_free_16,该符号在函数 "public: struct QRegularExpressionMatchPrivate * __thiscall QRegularExpressionPrivate::doMatch(class QString const &,int,int,int,enum QRegularExpression::MatchType,class QFlags<enum QRegularExpression::MatchOption>,enum QRegularExpressionPrivate::CheckSubjectStringOption,struct QRegularExpressionMatchPrivate const *)const " (?doMatch@QRegularExpressionPrivate@@QBEPAUQRegularExpressionMatchPrivate@@ABVQString@@HHHW4MatchType@QRegularExpression@@V?$QFlags@W4MatchOption@QRegularExpression@@@@W4CheckSubjectStringOption@1@PBU2@@Z) 中被引用
1>Qt5Cored.lib(qregularexpression.obj) : error LNK2019: 无法解析的外部符号 _pcre2_compile_16,该符号在函数 "public: void __thiscall QRegularExpressionPrivate::compilePattern(void)" (?compilePattern@QRegularExpressionPrivate@@QAEXXZ) 中被引用
1>Qt5Cored.lib(qregularexpression.obj) : error LNK2019: 无法解析的外部符号 _pcre2_code_free_16,该符号在函数 "public: void __thiscall QRegularExpressionPrivate::cleanCompiledPattern(void)" (?cleanCompiledPattern@QRegularExpressionPrivate@@QAEXXZ) 中被引用
1>Qt5Cored.lib(qregularexpression.obj) : error LNK2019: 无法解析的外部符号 _pcre2_pattern_info_16,该符号在函数 "public: class QStringList __thiscall QRegularExpression::namedCaptureGroups(void)const " (?namedCaptureGroups@QRegularExpression@@QBE?AVQStringList@@XZ) 中被引用
1>Qt5Cored.lib(qregularexpression.obj) : error LNK2019: 无法解析的外部符号 _pcre2_match_data_create_from_pattern_16,该符号在函数 "public: struct QRegularExpressionMatchPrivate * __thiscall QRegularExpressionPrivate::doMatch(class QString const &,int,int,int,enum QRegularExpression::MatchType,class QFlags<enum QRegularExpression::MatchOption>,enum QRegularExpressionPrivate::CheckSubjectStringOption,struct QRegularExpressionMatchPrivate const *)const " (?doMatch@QRegularExpressionPrivate@@QBEPAUQRegularExpressionMatchPrivate@@ABVQString@@HHHW4MatchType@QRegularExpression@@V?$QFlags@W4MatchOption@QRegularExpression@@@@W4CheckSubjectStringOption@1@PBU2@@Z) 中被引用
1>Qt5Cored.lib(qregularexpression.obj) : error LNK2019: 无法解析的外部符号 _pcre2_match_16,该符号在函数 "int __cdecl safe_pcre2_match_16(struct pcre2_real_code_16 const *,unsigned short const *,int,int,int,struct pcre2_real_match_data_16 *,struct pcre2_real_match_context_16 *)" (?safe_pcre2_match_16@@YAHPBUpcre2_real_code_16@@PBGHHHPAUpcre2_real_match_data_16@@PAUpcre2_real_match_context_16@@@Z) 中被引用
1>Qt5Cored.lib(qregularexpression.obj) : error LNK2019: 无法解析的外部符号 _pcre2_match_data_free_16,该符号在函数 "public: struct QRegularExpressionMatchPrivate * __thiscall QRegularExpressionPrivate::doMatch(class QString const &,int,int,int,enum QRegularExpression::MatchType,class QFlags<enum QRegularExpression::MatchOption>,enum QRegularExpressionPrivate::CheckSubjectStringOption,struct QRegularExpressionMatchPrivate const *)const " (?doMatch@QRegularExpressionPrivate@@QBEPAUQRegularExpressionMatchPrivate@@ABVQString@@HHHW4MatchType@QRegularExpression@@V?$QFlags@W4MatchOption@QRegularExpression@@@@W4CheckSubjectStringOption@1@PBU2@@Z) 中被引用
1>Qt5Cored.lib(qregularexpression.obj) : error LNK2019: 无法解析的外部符号 _pcre2_get_ovector_pointer_16,该符号在函数 "public: struct QRegularExpressionMatchPrivate * __thiscall QRegularExpressionPrivate::doMatch(class QString const &,int,int,int,enum QRegularExpression::MatchType,class QFlags<enum QRegularExpression::MatchOption>,enum QRegularExpressionPrivate::CheckSubjectStringOption,struct QRegularExpressionMatchPrivate const *)const " (?doMatch@QRegularExpressionPrivate@@QBEPAUQRegularExpressionMatchPrivate@@ABVQString@@HHHW4MatchType@QRegularExpression@@V?$QFlags@W4MatchOption@QRegularExpression@@@@W4CheckSubjectStringOption@1@PBU2@@Z) 中被引用
1>Qt5Cored.lib(qregularexpression.obj) : error LNK2019: 无法解析的外部符号 _pcre2_substring_number_from_name_16,该符号在函数 "public: int __thiscall QRegularExpressionPrivate::captureIndexForName(class QStringView)const " (?captureIndexForName@QRegularExpressionPrivate@@QBEHVQStringView@@@Z) 中被引用
1>Qt5Cored.lib(qregularexpression.obj) : error LNK2019: 无法解析的外部符号 _pcre2_jit_compile_16,该符号在函数 "public: void __thiscall QRegularExpressionPrivate::optimizePattern(void)" (?optimizePattern@QRegularExpressionPrivate@@QAEXXZ) 中被引用
1>Qt5Cored.lib(qregularexpression.obj) : error LNK2019: 无法解析的外部符号 _pcre2_jit_stack_create_16,该符号在函数 "public: __thiscall QPcreJitStackPointer::QPcreJitStackPointer(void)" (??0QPcreJitStackPointer@@QAE@XZ) 中被引用
1>Qt5Cored.lib(qregularexpression.obj) : error LNK2019: 无法解析的外部符号 _pcre2_jit_stack_assign_16,该符号在函数 "public: struct QRegularExpressionMatchPrivate * __thiscall QRegularExpressionPrivate::doMatch(class QString const &,int,int,int,enum QRegularExpression::MatchType,class QFlags<enum QRegularExpression::MatchOption>,enum QRegularExpressionPrivate::CheckSubjectStringOption,struct QRegularExpressionMatchPrivate const *)const " (?doMatch@QRegularExpressionPrivate@@QBEPAUQRegularExpressionMatchPrivate@@ABVQString@@HHHW4MatchType@QRegularExpression@@V?$QFlags@W4MatchOption@QRegularExpression@@@@W4CheckSubjectStringOption@1@PBU2@@Z) 中被引用
1>Qt5Cored.lib(qregularexpression.obj) : error LNK2019: 无法解析的外部符号 _pcre2_jit_stack_free_16,该符号在函数 "public: __thiscall QPcreJitStackPointer::~QPcreJitStackPointer(void)" (??1QPcreJitStackPointer@@QAE@XZ) 中被引用
1>Qt5Cored.lib(qregularexpression.obj) : error LNK2019: 无法解析的外部符号 _pcre2_get_error_message_16,该符号在函数 "public: class QString __thiscall QRegularExpression::errorString(void)const " (?errorString@QRegularExpression@@QBE?AVQString@@XZ) 中被引用
1>G:\C++ Demo\TestMT\TestMT\Debug\ConsoleApplication1.exe : fatal error LNK1120: 16 个无法解析的外部命令

_pcre2_config_16

_pcre2_match_context_create_16

_pcre2_jit_compile_16

根据名字猜测,这些函数在qtpcre2d.lib中

 

©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页