gpt4 book ai didi

c++ - Ogre3D 显示段错误

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:59:19 27 4
gpt4 key购买 nike

我正在使用 Ogre3D 编写游戏,但遇到了问题。

当我启动程序时,它显示一个段错误:

*-*-* OGRE Initialising                                                                                                                                                                                                                                                        
*-*-* Version 1.7.2 (Cthugha)
Creating resource group Essential
Added resource location '../media/packs/SdkTrays.zip' of type 'Zip' to resource group 'Essential'
Added resource location '../media' of type 'FileSystem' to resource group 'General'
Added resource location '../media/materials/scripts' of type 'FileSystem' to resource group 'General'
Added resource location '../media/materials/textures' of type 'FileSystem' to resource group 'General'
Added resource location '../media/models' of type 'FileSystem' to resource group 'General'
Naruszenie ochrony pamięci [This means segfault]

我不知道,为什么...

代码:

#define OGRE_CHANGE1 ((1 << 16) | (1 << 8))

#include "Ogre.h"
#include "ExampleApplication.h"

#if OGRE_PLATFORM == OGRE_PLATFORM_WIN32
#define WIN32_LEAN_AND_MEAN
#include "windows.h"
#else
#include <iostream>
#endif

class MyApp : public ExampleApplication
{
protected:
public:
MyApp()
{
}

~MyApp()
{
}
protected:
void createScene(void)
{
}
};

#ifdef __cplusplus
extern "C" {
#endif

#if OGRE_PLATFORM == OGRE_PLATFORM_WIN32
INT WINAPI WinMain( HINSTANCE hInst, HINSTANCE, LPSTR strCmdLine, INT )
#else
int main(int argc, char **argv)
#endif
{
MyApp App;
try
{
App.go();
return 0;
}
catch (Ogre::Exception& e)
{
#if OGRE_PLATFORM == OGRE_PLATFORM_WIN32
MessageBox( NULL, e.getFullDescription().c_str(), "Exception!",
MB_OK | MB_ICONERROR | MB_TASKMODAL);
#else
std::cerr <<"Exception:\n";
std::cerr <<e.getFullDescription().c_str() <<"\n";
#endif
return 1;
}
}

#ifdef __cplusplus
}
#endif

(部分代码来自 Ogre Wiki)

资源.cfg:

# Resources required by the sample browser and most samples.
[Essential]
Zip=../media/packs/SdkTrays.zip

# Resource locations to be added to the default path
[General]
FileSystem=../media
FileSystem=../media/materials/scripts
FileSystem=../media/materials/textures
FileSystem=../media/models

plugins.cfg:

# Defines plugins to load

# Define plugin folder
PluginFolder=/usr/lib/OGRE

# Define plugins
# Plugin=RenderSystem_Direct3D9
# Plugin=RenderSystem_Direct3D10
# Plugin=RenderSystem_Direct3D11
Plugin=RenderSystem_GL
# Plugin=RenderSystem_GLES
Plugin=Plugin_ParticleFX
Plugin=Plugin_BSPSceneManager
Plugin=Plugin_CgProgramManager
Plugin=Plugin_PCZSceneManager
Plugin=Plugin_OctreeZone
Plugin=Plugin_OctreeSceneManager

并且 - 当我在 plugins.cfg 中评论 Plugin=Plugin_CgProgramManager 时...程序可以运行,但我需要这个插件。 :)

请帮忙。
提前致谢。

最佳答案

  1. 编译包含调试信息的程序(使用 GCC,这意味着确保将 -g 选项传递给编译器)。
  2. 在调试器中运行它。
  3. 当它崩溃时,您会得到一个堆栈跟踪。
  4. 调查它是否似乎取决于您所做的事情(或未做的事情,例如缺少初始化),或者它是否看起来像是 Ogre3D 本身的崩溃。
    1. 如果是前者,请修复它。
    2. 如果是后者,请报告。

关于c++ - Ogre3D 显示段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4860215/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com