【发布时间】:2016-07-22 13:55:53
【问题描述】:
当我尝试静态编译 Qt 5.7 以获得一个独立的 Windows 部署应用程序时,如提及 here 所述,我收到以下错误:
C:\Qt\Qt5.7.0\5.7\Src\qtbase/qmake/library/qmakebuiltins.cpp:在成员函数'QByteArray QMakeEvaluator::getCommandOutput(const QString&) const'中
C:\Qt\Qt5.7.0\5.7\Src\qtbase/qmake/library/qmakebuiltins.cpp:419:94: 错误:'_popen' 未在此范围内声明 + QLatin1String(" && ") + args).toLocal8Bit().constData(), "r")) {
C:\Qt\Qt5.7.0\5.7\Src\qtbase/qmake/library/qmakebuiltins.cpp:427:23: 错误:'_pclose' 未在此范围内声明 QT_PCLOSE(proc);
Makefile:204: 目标“qmakebuiltins.o”的配方失败 mingw32-make: *** [qmakebuiltins.o] 错误 1 构建 qmake 失败,返回码 2
我的目标是使最终版本独立并优化大小(仅在库中使用的必要符号),也在我提供的链接中我没有看到 MinGw 提及,我没有 @987654327 @(并且不想得到它)。
【问题讨论】:
-
请注意,MinGW 工具目前无法清除目标文件中未使用的部分,请参阅this bug report。不过,静态链接和剥离大部分内容应该仍然是可能的。
-
我还建议您尝试MSYS2 及其 qt5-static 包,它提供了一个现成的静态构建 Qt,省去了构建它的麻烦。
-
@rubenvb 我尽量避免非官方发布,因为它总是伴随着兼容性问题或项目放弃。
-
所以您自己构建了一个非官方版本以避免这些问题?构建脚本是可用的,所以原则上你可以自己构建它,见here。这不是最简洁的示例,但是,这是因为 Qt 在正常配置中构建起来并不那么快速和容易。
标签: windows qt compiler-errors mingw