【发布时间】:2019-08-13 23:06:17
【问题描述】:
我正在为 Windows 10 部署 Qt 应用程序,当我尝试在 Qt Creator 之外运行它时出现错误 (0xc000a200)。
根据我的research,这看起来像是涉及“AppContainers”的 Windows 8+ 特定错误。
我已将 LTLINKOPTS = $(LTLINKOPTS) "/APPCONTAINER" 添加到我的 .pro 文件中,并将 /APPCONTAINER 添加到 makefile 中的 LFLAGS 中,但都没有解决问题。
另外,在此之前我确实运行过windeployqt,并且所有qt dll都存在于运行目录中。
.pro:
win32 {
INCLUDEPATH += C:/boost/
LIBS += -LC:/boost/stage/lib
Boost_USE_STATIC_LIBS = ON
LTLINKOPTS = $(LTLINKOPTS) "/APPCONTAINER"
}
非常感谢任何指导 - 这是我的第一次 Windows Qt 部署。
【问题讨论】:
-
Boost_USE_STATIC_LIBS的语法看起来像 CMake 语法,而不是 qmake,所以我不确定它在这里有什么作用。因此,也许您缺少 Boost DLL。无论如何,您可以尝试使用 Dependency Walker (dependencywalker.com) 之类的依赖检查器来查看是否缺少任何 DLL。 -
嗨 - 不清楚您是打算分发一个包(msi 样式)还是仅仅构建一个完整的图像。如果是后者,则需要构建程序的静态版本,而这又需要 Qt 的静态版本。如果是前者,您需要查看doc.qt.io/qtinstallerframework/ifw-creating-installers.html。如果是后者,请告诉我,我会跟进详细答复。
标签: windows qt visual-c++ boost-asio