查看: 1815|回复: 13

有高手遇见过这种怪事吗?本机上运行毫无问题,在别的电脑上问题就来了。

[复制链接]

该用户从未签到

发表于 2010-9-28 04:47:38 | 显示全部楼层 |阅读模式
本帖最后由 Ak00002 于 2010-9-28 04:59 编辑

我在自己的电脑上编写的程序,并生成的exe文件。在其他的没有安装osg的机器上,无法保存osg文件。

我的程序中,首先通过osgDB::writeNodeFile()把建立好的.ive文件保存在硬盘上,再通过osgDB::readNodeFile()把这个.ive文件读入到osgviewer中。在自己的电脑上运行起来完全没问题。可把程序装到别的电脑上后,就无法保存,也无法读取了。我想,肯定是还有一些必要的dll没有随同安装程序一起打包。可不知道到底是哪些。在本机上一切都正常,调试没有问题。在别的机器上是直接执行exe,没有错误提示,也无法观察是少了什么文件。请好心的高手们帮帮忙啊。非常感谢。

我的环境:
Windows XP SP3
Visual Studio .Net 2008 (VC++.NET 2008)
Opencv 1.1
OSG 2.82
gdal 1.72
vpb 9.10
qt 4.5.1

该用户从未签到

发表于 2010-9-28 08:34:21 | 显示全部楼层
这不是什么怪事,恐怕只能是您没有把必需的文件拷贝完整的问题。
您都拷贝了哪些文件到“其他的没有安装osg的机器上”,请给出相关的信息

该用户从未签到

发表于 2010-9-28 11:21:43 | 显示全部楼层
对啊,相应的osg的dll库文件也需要考的

该用户从未签到

 楼主| 发表于 2010-9-28 15:00:07 | 显示全部楼层
谢谢各位的帮忙,我拷了以下的dll

OpenCV所属:
cv110.dll
cxcore110.dll
highgui110.dll

OSG所属:
osg55-osg.dll
osg55-osgDB.dll
osg55-osgGA.dll
osg55-osgText.dll
osg55-osgUtil.dll
osg55-osgViewer.dll
ot11-OpenThreads.dll

QT所属:
QtCore4.dll
QtGui4.dll

该用户从未签到

发表于 2010-9-28 15:12:48 | 显示全部楼层
OpenCV还用到啊,这个是计算机视觉的吧

该用户从未签到

 楼主| 发表于 2010-9-28 15:17:53 | 显示全部楼层
是的。但那个应该没有问题吧,是不是还差OSG的dll

该用户从未签到

发表于 2010-9-28 17:18:33 | 显示全部楼层
您没有考虑osgPlugins中的插件DLL,要保存.osg格式至少需要osgdb_osg和osgdb_deprecated_开头的插件文件

该用户从未签到

 楼主| 发表于 2010-9-28 18:23:43 | 显示全部楼层
感谢array,我把osgdb_osg加入相应文件夹后,问题得到解决。现在可以在别的电脑上生成和浏览.osg文件了。但新的问题又来了,同样,在我把osgdb_ive放入文件夹以后,还是不能生成和浏览ive文件。难道还需要什么dll吗? 我把vpb.dll,gdal17.dll,zlib1.dll,zlib1d.dll也加入进去,还是不行。 但不管怎么说,现在知道问题出在哪个方向了,再次感谢。

该用户从未签到

 楼主| 发表于 2010-9-28 18:25:15 | 显示全部楼层
同时也感谢tianxiao888

该用户从未签到

 楼主| 发表于 2010-9-28 19:36:49 | 显示全部楼层
本帖最后由 Ak00002 于 2010-9-29 06:28 编辑

现在能在客户的电脑上保存 ive文件了,原来osgdb_ive.dll的使用,需要以下这些dll,我缺乏其中几个.
gdal17.dll  (17是版本号 版本为1.72)
glu32.dll
glut32.dll
highgui110.dll
liblua.dll
libpng13.dll
osg55-osg.dll (55是版本号 版本为2.82)
osg55-osgDB.dll
osg55-osgFX.dll (osgdb_ive.dll必要依赖库,用Dependency (win32版)观察到的)
osg55-osgGA.dll
osg55-osgSim.dll (osgdb_ive.dll必要依赖库,用Dependency (win32版)观察到的)
osg55-osgTerrain.dll (osgdb_ive.dll必要依赖库,用Dependency (win32版)观察到的)
osg55-osgText.dll
osg55-osgUtil.dll
osg55-osgViewer.dll
osgdb_bmp.dll  (使用bmp图片进行纹理贴图的必要库)
osgdb_ive.dll (ive场景图形必要依赖库)
ot11-OpenThreads.dll
vpb.dll (ive场景图形必要依赖库)
zlib1.dll (ive场景图形必要依赖库)
但新的问题又来了,在客户的机器上生成的.ive文件没有纹理,在本机上有纹理。这又是怎么回事啊?array我在您的历史帖中看见了有关这方面的帖子,但那些纹理贴不上去的不是像我这样的,我的是在本机上能贴,在客户机上不能贴。再次劳驾啊。难道还少了什么dll吗?还是代码有问题?

该用户从未签到

 楼主| 发表于 2010-9-29 06:26:10 | 显示全部楼层
问题已经解决

我使用的纹理图片是bmp格式。貌似OSG2.82只与bmp格式的图片纹理兼容.所以必须使用插件库中的osgdb_bmp.dll才能使场景图获得 bmp格式的纹理.

再次感谢array,如果没有您的提示,我可能要很久才会想到,要去第三方库,插件库以及vpb库中去找所需要的dll。顺着这个思路我就把以上的这个问题也解决了。

该用户从未签到

发表于 2010-9-29 10:05:42 | 显示全部楼层
vc的Depends可以看依赖库吧~找的麻烦的

该用户从未签到

发表于 2010-10-10 21:09:15 | 显示全部楼层
应该是缺少I/O那些dll文件

该用户从未签到

发表于 2010-10-13 23:17:36 | 显示全部楼层
楼主是用osgdem贴的地形纹理吗?如果是,有这样的代码或是例子提供学习一下哈,谢谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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