我正在尝试用代码块12.11设置一个Ogre3D v1.8.1,其中配置了GCC 4.7.0。我下载了Ogre3D for MinGW的预编译版本,启动示例编译并执行程序,但在Ogre3D(驱动程序选择屏幕)的初始化过程中出现了一些错误,应用程序冻结了。在网上仔细搜索发现,有这么多的帖子在互联网上,许多人已经停留在这个阶段的节目,无法通过。
C::Ogre3D scrren崩溃后的B编译器报告
In __cxa_throw () (D:\Ogre3D_181\OgreSDK_MinGW_v1-8-1\bin\Debug\OgreMain_d.dll)
87 ..\..\..\..\..\OgreMain\src\OgreConfigFile.cpp: No such file or directory.
#1 0x009507e9 in Ogre::ConfigFile::loadDirect (this=0x28fc48, filename=...,
separators=..., trimWhitespace=true) at ..\..\..\..\OgreMain\src\OgreConfigFile.cpp:87
Debugger finished with status 0Ogre3D.log报告如下所示
13:19:34: MovableObjectFactory for type 'BillboardSet' registered.
13:19:34: MovableObjectFactory for type 'ManualObject' registered.
13:19:34: MovableObjectFactory for type 'BillboardChain' registered.
13:19:34: MovableObjectFactory for type 'RibbonTrail' registered.
13:19:34: OGRE EXCEPTION(6:FileNotFoundException): 'plugins.cfg' file not found! in
ConfigFile::load at ..\..\..\..\..\OgreMain\src\OgreConfigFile.cpp (line 88)根据Ogre3D和C::B产生的抱怨,我似乎没有正确传递正确的include/source/lib目录和外部依赖项,但实际上我遵循了官方Ogre3D站点的指示,我确信这是正确的,因为否则编译器应该在编译期间抛出异常。与此同时,其他用户也经历了这样的问题,即使他们正确地配置环境。
另一个错误
07:09:37: OGRE EXCEPTION(7:InternalErrorException): Unable to compile Cg program
Ogre/DualQuaternionHardwareSkinningTwoWeightsTwoPhaseCg: The compile returned an
error.DualQuaternion_Common.cg(167) : warning C7019: "blendWgt" is too large for
semantic
"BLENDWEIGHT", which is size 1
(0) : error C6007: Constant register limit exceeded; more than 96 constant registers
needed to compiled program
(0) : error C6007: Constant register limit exceeded; more than 96 constant registers
needed to compiled program
(0) : error C6007: Constant register limit exceeded; more than 96 constant registers
needed to compiled program
in CgProgram::compileMicrocode at
..\..\..\..\..\..\PlugIns\CgProgramManager\src\OgreCgProgramManagerDll.cpp (line 67)你的指导将会被认可,
发布于 2014-03-12 12:13:50
例外情况不是抱怨源目录或外部依赖项。它在抱怨缺少plugins.cfg文件。日志中最相关的一行是:
OGRE异常(6:FileNotFoundException):“plugins.cfg”文件未找到!在...
该文件的位置将传递给根部的构造函数。演示程序可能使用工作目录的根。确保正确设置了工作目录,并确保文件位于该路径中。
参见本指南设置应用程序- CodeBlocks
如果您想要在Code::Block中运行可执行文件,则需要在项目设置中设置“工作目录”和“命令”,如下所示(请参阅该页面中的图像)
您可以找到更多关于初始化和plugins.cfg在这个教程中的基本信息。
发布于 2014-03-13 09:30:26
关于您的第二个错误:
正如消息明确指出的那样,您的Cg程序试图使用比机器上可用的寄存器更多的寄存器。这取决于图形卡(您使用的是哪一个)?
根据您想要实现的目标,您可能需要稍微调整着色器,以便它们保持在您的硬件的支持范围内。
例如,看看这个Ogre3D论坛线程,在DualQuaternion着色器中发生了类似的事情,用户只是减少了骨头计数。在ATI卡上,通常只有24块骨头被支持在那个阴影中。
重要的一点是: Ogre v1.9已经修复了该领域的许多问题,因此我建议您在可能的情况下更新。v1.9已经稳定了相当一段时间(实际上,我们已经在准备下一个版本v.1.0)。
https://stackoverflow.com/questions/22350182
复制相似问题