【问题标题】:Irrlicht Compiles, but Crashes on ExecutionIrrlicht 编译,但执行时崩溃
【发布时间】:2012-09-22 05:18:28
【问题描述】:

我的电脑上有 irrlicht 1.6,我使用代码块 + tdm-gcc MinGW 4.7。什么情况是,当我编译一个示例程序时,它编译得很好,但是当我尝试运行它时,它总是给我一个分段错误错误。它返回代码 -1073741819 (0xC0000005)。在任何尝试使用图形驱动程序时,它总是会出现分段错误。这就是发生分离故障的地方。

guienv->addStaticText(L"Hello World! This is the Irrlicht Software renderer!",
    rect<int>(10,10,200,22), true);

【问题讨论】:

  • 您是拨打guienv = irrlichtDevice-&gt;getGUIEnvironment(); 还是以其他方式设置guienv?听起来您可能正在尝试调用无效指针
  • 如果我使用最新版本的tdm-gcc,程序会编译,但是会崩溃。但是,如果我使用代码块 (4.4.1) 附带的 tdm-gcc 版本,它不会崩溃。为什么?
  • 我认为这可能是一个dll问题,因为代码编译得很好。
  • 根据 mtsvetkov 的评论,你能说明 guienv 是如何初始化的吗?
  • guienv 初始化如下: IrrlichtDevice device = createDevice( video::EDT_SOFTWARE, dimension2d(640, 480), 16, false, false, false, 0); IGUIEnvironment guienv = device->getGUIEnvironment();

标签: c++ dll graphics segmentation-fault irrlicht


【解决方案1】:

我在整个互联网上搜索了解决方案,但找不到任何解决方案。即使我构建了自己的 dll,它还是过大(22mb +)并且不包含 irrlicht 的所有功能。所以,我决定从 tdm-gcc 4.7 降级到 4.6,它可以完美地工作,使用原始 dll 和所有功能。如果有人遇到同样的问题并想尝试降级,请通过http://sourceforge.net/projects/tdm-gcc/files/TDM-GCC%20Installer/Previous/1.1006.0/获取安装程序

更新

我发现随着 irrlicht 1.8 的发布,它现在可以与 MinGW 4.7 32 位和 64 位正确编译。

【讨论】:

    猜你喜欢
    • 2017-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-18
    • 1970-01-01
    • 1970-01-01
    • 2014-11-18
    相关资源
    最近更新 更多