结果是静态链接正在工作,但仅适用于Qt库.我的第三方库QtSerialPort没有静态链接.经过一些研究,我发现我要么静态地构建这个库,要么我必须直接链接到.pro文件中的.pri文件.
我不知道怎么做,因为看起来QtSerialPort还没有设计用于静态链接.
.pri方法我真的不明白,并且在这两个链接中含糊不清地描述:http : //qt-project.org/forums/viewthread/15223 http://www.qtcentre.org/archive/index.php /t-54505.html
有没有人对如何让这些方法中的任何一种有效?或者可能另一种方法?
此外,MSVCP100.dll没有静态链接,如果有人可以给我任何建议.
================================================== ================================
我试图让Qt静态链接库,以便我可以创建一个独立的应用程序.我已经遵循了各种关于如何静态构建Qt然后构建静态应用程序的教程,但我没有太多运气.我相信我已经成功地使用静态链接构建Qt,因为应用程序的大小从79KB增加到7 + MB但我仍然收到错误,说QtCore4.dll和QtSerialPort.dll丢失了.另外,我在使用这个静态配置时遇到的另一个问题是,当我关闭我的程序时,Windows认为它已经崩溃,并给我一个窗口说MyProgram.exe已停止工作...
我在使用MSVC 2010和Qt 4.8.5的Windows机器上,并使用第三方库QtSerialPort.
根据我一直在阅读的指南,我所做的是:
下载并解压缩qt-everywhere-opensource-src-4.8.5.zip打开/mpecpec/mwin32-msvc2010/qmake.conf并将以下行更改为
CONFIG += qt warn_on release incremental flat link_prl precompile_header autogen_precompile_source copy_dir_files debug_and_release debug_and_release_target
和
QMAKE_CLFAGS_RELEASE = -O2 -MT
然后我打开MSVC2010命令提示符并cd到此.然后我输入命令
configure -static -release -platform win32-msvc2010 nmake sub-src
完成此操作后,我打开我的项目并添加
CONFIG += static
到.pro文件.在QtCreator中,然后我进入项目,管理工具包然后进入Qt版本并浏览到我刚刚生成的qMake.我在这个版本的qMake中添加了一个新工具包.然后我清理所有并切换到这个新工具包并从QtCreator运行qmake.然后我使用msvc2010命令提示符转到生成文件的目录然后
nmake release
这会产生一个相当大的.exe,但就像我说的那样,它仍然取决于一对.dll的.