原来静态链接有效,但仅适用于 Qt 库。我的第 3 方库 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 已停止工作......
我在使用带有 Qt 4.8.5 的 MSVC 2010 的 Windows 机器上,并且正在使用第三方库 QtSerialPort。
根据我一直在阅读的指南,我所做的是:
下载并解压 qt-everywhere-opensource-src-4.8.5.zip 打开 /mkspec/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 中,我进入 Projects,Manage Kits,然后进入 Qt Versions 并浏览到我刚刚生成的 qMake。我用这个版本的 qMake 添加了一个新工具包。然后我清理所有并切换到这个新工具包并从 QtCreator 运行 qmake。然后我使用 msvc2010 命令提示符转到生成文件的目录,然后
nmake release
这会生成一个相当大的 .exe,但就像我说的,它仍然取决于几个 .dll。