过去我成功地为 Windows 创建了 Qt5 静态构建。 这次我尝试将最新的 Qt5 构建为动态构建,但生成的构建不起作用,具体来说:
如果我将它用于 QtCreator 套件,并使用所述套件从 QtCreator 中运行我的应用程序,则应用程序在启动时崩溃,并出现找不到合适平台插件的错误
如果我将所有 dll 和插件目录复制到我的应用程序构建目录中并从命令提示符运行它,应用程序在启动时仍然崩溃,这次没有任何有意义的错误消息(通过 envvar 调试插件显示所有相关插件都是发现)。
我在
nmake
和nmake install
之前使用的配置命令是
C:\Qt5\qt5\bin\release>..\..\configure.bat -v -release -opensource -nomake examples -nomake tests -platform
win32-msvc -opengl desktop -openssl -openssl-linked -I C:\Qt\Tools\OpenSSL_1.1\Win_x64\include -LC:\Qt\Tools\OpenSSL_1.1\Win_x64\lib -
recheck-all -skip qtpurchasing -qt-doubleconversion -qt-pcre -qt-zlib -qt-harfbuzz -qt-libpng -qt-libjpeg -qt-sqlite -
feature-location-labs-plugin -feature-webengine-proprietary-codecs -no-feature-webengine-developer-build -no-feature-
webengine-system-ninja -webengine-jumbo-build 0
注意:使用此 Qt5 构建的 Qt5 和我的应用程序的编译均成功。
另请注意,在同一系统上,通过 QtCreator 使用 Qt 公司的在线安装程序 5.15.2 版本成功构建并运行了应用程序。
24 年 8 月 19 日更新: 我现在已经测试了带有传统前缀 (c: oo) 的前缀构建和带有
-prefix %CD%\qtbase
的前缀构建。然而,当通过套件在 QtCreator 中使用时,两种构建都会以相同的方式失败。
我的配置行是否有错误或缺失导致其无法正常工作?据我所知,我没有使用前缀(这有什么区别吗?
nmake install
将其安装到C:\Qt\Qt-5.15.14
中)并且构建没有 qt.conf 作为输出。但我不确定这会在多大程度上影响构建..
或者,有人可以提供一个配置行来构建动态 Qt5 并在 windows(7) 上正常运行吗?
事实证明我的配置行显然是正确的。 然而,无论出于何种原因,使用 QtCreator 内生成的构建始终失败。
从命令行构建应用程序,而不是使用该构建目录中的 qmake,生成一个工作二进制文件。 我不知道 QtCreator 是如何出错的(我尝试了版本 4.13、4.15 和 5.0.3),但至少我已经解决了我的问题并且现在可以构建应用程序。