在G8中安装Ogre3D,在Win8中安装C :: B.

时间:2014-03-12 11:31:57

标签: c++ gcc mingw ogre3d

我试图设置一个带有代码块12.11的Ogre3D v1.8.1,其中配置了GCC 4.7.0。我为MinGW下载了预编译的Ogre3D版本,启动示例编译并执行程序而没有错误,但在Ogre3D(驱动程序选择屏幕)的初始化期间发生了一些错误并且应用程序冻结。故意在网上搜索显示,互联网上有这么多帖子,很多人都坚持不能通过的那个程序阶段。

Ogre3D scrren崩溃后的

C :: 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 0

Ogre3D.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)

您的指导意见将被提及,

2 个答案:

答案 0 :(得分:2)

异常不是抱怨源目录或外部依赖项。它抱怨丢失plugins.cfg文件。日志中最相关的一行是:

  

OGRE EXCEPTION(6:FileNotFoundException):' plugins.cfg'文件未找到!在...

该文件的位置传递给Root的构造函数。演示可能使用working directory的根。确保正确设置工作目录,并且文件位于该路径中。

请参阅本指南Setting Up An Application - CodeBlocks

  

如果要在Code :: Blocks中运行可执行文件,则需要设置工作目录'和'命令'在这样的项目设置中:(参见该页面的图像)

您可以找到有关初始化的更多基本信息以及此tutorial

中plugins.cfg的内容

答案 1 :(得分:2)

关于你的第二个错误:

正如消息中明确指出的那样,您的Cg程序会尝试使用比计算机上可用的寄存器更多的寄存器。这取决于显卡(您使用的是哪一个)?

根据您要实现的目标,您可能需要稍微调整着色器,以使它们保持在硬件支持的范围内。

例如,请参阅此Ogre3D forums thread,其中 DualQuaternion 着色器发生类似情况,用户只是减少了骨骼数量。在ATI卡上,该着色器通常只支持24个骨骼。

重要提示:该区域的许多问题已通过Ogre v1.9修复,因此我建议您尽可能更新。 v1.9已经稳定了很长一段时间(事实上我们已经在准备下一个版本v.1.0)。