查看: 2812|回复: 21

求助为什么读取ive失败

[复制链接]

该用户从未签到

发表于 2011-6-21 09:11:07 | 显示全部楼层 |阅读模式
本帖最后由 andy1uo 于 2011-6-22 13:26 编辑

我在有vc环境下的机器上编译了osg,并且能正常运行,比如可以通过osgviewer cow.osg来查看这个牛的模型,但是当我把我编译好的dll,以及第三方的dll,以及vc下的那些mfc80.dll之类的东东一起放到同一个文件夹下,并且拷贝到另外一台机器上。结果这个cow.osg的模型是白色的,里面的纹理没有出来,还有读取ive文件的时候说不能找到plugin,也就是读取不了。
这是什么原因呢?有谁碰到过类似的问题,麻烦告知一二。
我还想问一下,这个原因是不是和cmake设置时有关啊。
osgDB是不是会把运行成功的osgdb_ive.dll写入注册表中,刚才我在自己的注册表中查到了osgdb_ive.dll。

该用户从未签到

发表于 2011-6-21 09:20:13 | 显示全部楼层
系统变量没设置吧。plugin是存放读取模型插件的地方,这个都找不到如何读模型呢

该用户从未签到

发表于 2011-6-21 09:20:36 | 显示全部楼层
你的插件库是否都拷贝过去了? 我自己以前遇到的情况是:还有些第三方的插件,可能依赖的VC的版本是其他版本的,你用Dependce看看依赖,还有Release,Debug,VC运行时库等方面。以上只是泛泛分析。

该用户从未签到

 楼主| 发表于 2011-6-21 09:23:30 | 显示全部楼层
回复 2# csu_liusj2003


    一定要设置系统变量吗?如果这样的话以后写一个自己的程序多要设置这个变量,还有你说的变量是指OSG_ROOT这些吗?在release版本下不需要别的lib和include这些了吧。

该用户从未签到

 楼主| 发表于 2011-6-21 09:29:38 | 显示全部楼层
回复 3# CWorld


    我把所有的第三方库多和osg.dll等一起放到同一目录下的。

该用户从未签到

发表于 2011-6-21 11:24:59 | 显示全部楼层
回复 5# andy1uo
不设置环境变量的话把dll都拷贝过去呗,包括需要用到的plugins下面的dll~

该用户从未签到

 楼主| 发表于 2011-6-21 11:41:27 | 显示全部楼层
偶就是这么些的,刚刚我用Dependency查看了一下,在没有编译环境下的dll多少了一个MSJAVA.DLL,不知道是不是这个原因

该用户从未签到

发表于 2011-6-21 12:35:41 | 显示全部楼层
请您提供截图信息或者更多的具体信息~~~~cow.osg的资源文件是否拷贝过去了等等之类的问题,请提供更多的信息

该用户从未签到

发表于 2011-6-21 13:36:30 | 显示全部楼层
牛是白色的是因为牛的反射贴图没拷过去,\Open Scene Graph\data\Images\reflect.rgb,把该文件拷过去就OK了。

该用户从未签到

 楼主| 发表于 2011-6-21 15:38:41 | 显示全部楼层
按照你们的意思把图片也考过去后,那个牛是可以运行正常了,那个ive文件还是不行,总是说找不到plugin,我是这样做的,将所有的不管有没有用的的所有osg在osgPlugins文件夹下的多考出来和osg.dll等方到一起。别的我没有设置环境变量。

该用户从未签到

 楼主| 发表于 2011-6-22 08:35:33 | 显示全部楼层
会不会在生成这些dll的时候的某些设置有关呢?Cmake的时候我有很多设置没有勾选。

该用户从未签到

发表于 2011-6-22 09:43:34 | 显示全部楼层
。。。。。。。。。你找下你的插件下有osgdb_ive.dll这个文件没,你把cmd命令行的信息复制出来不就完了~~~~~~~~~~~

该用户从未签到

 楼主| 发表于 2011-6-22 11:32:14 | 显示全部楼层
回复 12# FlySky


    你说的ive插件有的,而且多放到同一目录下的。是不是和osgDB有关啊,在没有环境的情况下是不是要手动设一些路径之类的东西或者说别的环境变量啊。

该用户从未签到

发表于 2011-6-22 13:50:28 | 显示全部楼层
你先把cmd命令行的信息复制出来,搞了半天,最直接最明显的错误提示都不知道是什么~~~~~~

该用户从未签到

 楼主| 发表于 2011-6-22 14:01:33 | 显示全部楼层
回复 14# FlySky


    Warning: Could not find plugin to read objects from file "./a.IVE".

该用户从未签到

发表于 2011-6-22 14:20:39 | 显示全部楼层
首先确定你正确设置了环境变量:PATH=osg*.dll的目录,其次,确保你这个IVE本身是可以读的(有可能这个IVE是加密的),再次,你试试不带中文名的英文绝对路径下读取这个IVE试试吧,这些招都用了还不行的话,RP问题。。。。。

该用户从未签到

 楼主| 发表于 2011-6-22 15:08:17 | 显示全部楼层
不设置环境变量就不行了吗?

该用户从未签到

 楼主| 发表于 2011-6-22 15:43:00 | 显示全部楼层
一个好消息和一个坏消息;好消息是听flysky的加了环境变量是可以运行了。坏消息是我不想设置环境变量,好像很多应用程序是不需要设置环境变量的吧。有可以不设置环境变量就能运行的方法吗?

该用户从未签到

发表于 2011-6-23 09:24:15 | 显示全部楼层
把相关的DLL都拷贝到程序运行目录就可以了,添加环境变量既然可以,那就说明您之前没有把动态库都拷贝过来

该用户从未签到

发表于 2011-6-24 11:23:36 | 显示全部楼层
纹理纹理没考

该用户从未签到

 楼主| 发表于 2011-6-24 16:19:58 | 显示全部楼层
问题总是那么奇怪,昨天我把osg3.0的编译了一下,和动态库也考了过去,结果可以读取ive文件了。
多不知道问题出在哪里,别的东西没变,只是关于osg的dll变了而已

该用户从未签到

发表于 2011-7-14 09:16:27 | 显示全部楼层
是不是设置path 环境变量为当前release 所在的目录?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

OSG中国官方论坛-有您OSG在中国才更好

网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

联系我们

  • 工作时间:09:00--18:00
  • 反馈邮箱:1315785073@qq.com
快速回复 返回顶部 返回列表