【发布时间】:2019-09-25 19:27:58
【问题描述】:
我在 Windows 8.1 上使用 QtCreator 和 Visual Studio 2015 工具包来构建我在 Linux 上开发和测试的程序,在 Linux 上它可以正常工作,但在 Windows 上它只是立即崩溃,我不知道该看什么为。
除了我使用的 QT 之外,唯一的外部库是 opengl 和 glew,所以我认为不是这些。
有什么已知的东西可以在 GNU C++ 中工作,但在 MSVC 中会立即崩溃?
【问题讨论】:
-
像往常一样,尝试将某些事情减少到最小的可重现情况。可以影响此类事情的一件事是全局变量、它们的构造函数以及总大小。根据具体情况,对象可能会从数据部分移动到堆栈中。并且堆栈大小可能会受到限制。但是,再次尝试尽可能多地删除准系统案例并确定您是否仍然会崩溃。或者,嘿,在调试器中启动它,看看你得到了什么样的堆栈跟踪。
-
它崩溃了——好的。但是当你在 MSVC 调试器下运行它时,错误信息是什么?断言错误?访问违规?缺少文件(dll 等)?什么?
-
@quetzacoatl sigsevs,我不知道如何将 MSVC 调试器链接到 Qt Creator,如果我不从 QtCreator 中打开它,它就找不到 qt5widgets.dll。我可以从 minGW 将 QtCreator 链接到 GDB,但我不确定这些符号在这种情况下是否有效。
-
如果您使用的是预构建的二进制文件,请确保您使用的是与您的编译器匹配的二进制文件。为 Mingw 构建的二进制文件不适用于 MSVC,反之亦然。