之前的文章里说了要修改项目的依赖库,这样才好运行程序,可是你是不是程序编译通过,链接也通过,可是启动的时候又出现了问题了呢?……反正我是出现了,不过这个问题在24内搞定了,直到凌晨2点啊。
如果程序启动的时候发生了内存访问错误,中断了,并且调试停留在load module failed那个地方,打开ogre.log里的日志则是显示:Compiler error: unknown error in RTShaderSystem.material(81): token ”rtshader_system” is not recognized。那么,下面我说的方法可能可以帮助你。
出现这个错误,很明显是资源或者模块没有导入进来。首先,看下你生成的exe所在的目录是否有resources_d.cfg文件,如果没有自己从ogresdk/bin/debug下拷贝过来,然后再运行,还有问题的看下面。
接着打开resources_d.cfg文件,看看里面所写的那些路径的地方是否存在对应的资源文件,没有的话你可以修改路径,也可以把资源文件拷贝到文件所写的路径的地方。
如此,你继续运行程序,是不是还会报错?还报错的话估计就是插件了,把ogresdk/bin/debug下的plugins_d.cfg文件再拷贝过来,然后修改里面的内容,对于用不到的模块用#号注释掉。这样应该就能成功了。
最后,我说下我机器上的情况。我的Ogre1.7.1是安装在c:/ogresdk,cegui安装在c:/cegui。我项目的输出目录设置为c:/cegui/bin,所以对于Ogre里的dll我就得拷贝到c:/cegui/bin下,我拷贝了2个基本的dll以及5个模块,所以在plugins_d.cfg里我把对应5个模块用上,其他的就#号注释掉。
好了,如果你还有问题可以大家一起探讨。这些说来容易,也费了我3天的时间,都耗在这上面了,同时也非常感谢林公子以及群里积极讨论的大家。
错误提示之一
成功的界面~
原文地址:http://www.beyondc.cn/cegui-error-when-the-load-module-failed.html