【发布时间】:2019-07-19 10:42:21
【问题描述】:
我从 GitHub 下载了 C++ 代码来标记图像,以使用机器学习训练对象检测器。
在基于 Qt 5.8.0 (MSVC 2015, 32bit) 的 Qt Creator 4.2.1 中,我能够编译和运行代码。不幸的是,我无法在 Qt Creator 之外运行 .exe。
最初,我收到一个错误
"The program can't start because libgcc_s_dw2-1.dll is missing".
感谢 QT The program can't start because libgcc_s_dw2-1.dll is missing,通过添加
轻松修复"QMAKE_LFLAGS += -static"
到 .pro 文件。现在,当我运行它时,我得到了
"The application was unable to start correctly (0xc000007b). Click OK to close the application."
我能够使用创建 Qt Widget 应用程序时出现的简单“Hello World”默认项目来重现该错误。这让我相信我的安装出了点问题。
根据这篇文章的建议:https://stackoverflow.com/questions/12099117/32-bit-qt-application-on-win-7-x64-wont-run-but-runs-fine-from-qt-creator,我使用 Dependency Walker 来确定可能的原因。我预计只会看到一些我可以跟进的项目。相反,我收到了将近 100 个丢失的 .dll 文件的列表。所有以
"API-MS-WIN ###.DLL" or "EXT-MS ###.DLL"
其中### 表示一些额外的文本字符,例如;
"API-MS-WIN-SHCORE-STREAM-WINRT-L1-1-0.DLL"
我正在附加一个示例输出。
另一个建议是复制过来
libwinpthread-1.dll, libstdc++-6.dll, libgcc_s_dw2-1.dll.
那也没用。
我的下一步是简单地获取最新版本的 QT 并祝愿一切顺利。我安装了基于 At 5.12.0(MSVC 2015,32 位)的 Qt Creator 4.8.1。这一次,我什至无法让代码在 IDE 中运行。我收到了 1000 多条错误消息!
根据几页的建议,我添加了
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
到 .pro 文件,它仍然无法编译。
另外,我验证了该应用程序正在构建为 32 位应用程序。我在 64 位 Windows 10 系统上运行。
如果有人想破解它,看看他们是否可以创建一个工作的 .exe,这里是链接:github.com/clavicule/BBTag
【问题讨论】:
标签: c++ qt compiler-errors