查看: 2865|回复: 12

VPB编译错误

[复制链接]

该用户从未签到

发表于 2011-6-15 13:13:13 | 显示全部楼层 |阅读模式
OSG版本为2.9.10,VPB版本为0.9.11,CMake编译错误提示为:OSG需要0.9.5以上的版本。很郁闷,明明OSG是2.9.10的。
无奈,换VPB版本为0.9.10,CMake编译无错,生成。sln文件成功。编译.sln文件出错,错误提示:namespace "osgDB" has no member "Serializer",询问过相关人士,说2.9以上的版本才支持这个,可已经是2.9.10了,请问该怎么办?

该用户从未签到

发表于 2011-6-16 08:25:29 | 显示全部楼层
您的osg没有配置好环境变量,即PATH中找不到osgversion这个程序所在的路径,因此才会找不到您的OSG版本

错误提示:namespace "osgDB" has no member "Serializer"
我认为您的2.9.10并没有起到作用,有可能您用的还是以前的某个版本,并没有把它切换过来

该用户从未签到

 楼主| 发表于 2011-6-16 09:22:34 | 显示全部楼层
我现在用的也是2.9.10的库

该用户从未签到

 楼主| 发表于 2011-6-16 09:28:22 | 显示全部楼层
而且在运行->cmd->osgversion.exe,输出是2.9.10,环境变量应该设置好了吧

该用户从未签到

发表于 2011-6-17 08:30:09 | 显示全部楼层
问题是,您的VPB设置的是哪个版本的OSG库

该用户从未签到

 楼主| 发表于 2011-6-17 13:26:37 | 显示全部楼层
我终于明白我哪错了,在用CMake编译VPB时,设置的OSG的库文件是备份的OSG库,并不是环境变量的路径下的OSG库。现在CMake编译成功了,但是生成的。sln文件,用VS2010编译ALL_BUILD工程,还是之前的错误:namespace "osgDB" has no member "Serializer",错误出在文件BuildOptionsIO.cpp,这是什么问题?

该用户从未签到

发表于 2011-6-17 15:01:58 | 显示全部楼层
设置的OSG的库文件是备份的OSG库,并不是环境变量的路径下的OSG库
我想您出现的还是这个问题

该用户从未签到

 楼主| 发表于 2011-6-27 18:03:58 | 显示全部楼层
又重新编译了好几遍,都是这个错误。错误全部出现在BuildOptionIO.cpp文件中,从class BuildOptionsLookUps类里, typedef std::list< osg::ref_ptr<osgDB::Serializer> > SerializerList;这句代码中开始出错,错误信息为:'Serializer':is not a member of 'osgDB'。但还是该文件,在开始部分,class GeospatialExtentsSerializer : public osgDB::Serializer,却没有报错,说明还是承认serializer是osgDB的内容啊,请教一下,错在哪了?

该用户从未签到

发表于 2011-6-28 08:25:31 | 显示全部楼层
您现有的信息无法判断什么了

该用户从未签到

 楼主| 发表于 2011-7-8 23:06:12 | 显示全部楼层
重新用SVN下载了最新版的OSG 和VPB的源文件,重新编译,OSG顺利编译成功,VPB编译出错,都处在LINK上。
error LNK1169ne or more multiply defined symbols found   vpb.dll
还有两个连接错误出在osgDB.lib,请问这是什么问题?

该用户从未签到

 楼主| 发表于 2011-7-9 15:12:56 | 显示全部楼层
出错提示是:
  1. osgDB.lib(osg78-osgDB.dll) : error LNK2005: "public: void __thiscall std::basic_ofstream<char,struct std::char_traits<char> >::`vbase destructor'(void)" (??_D?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAEXXZ) already defined in SpatialProperties.obj
  2. F:\OSG\VPB\VPB svn\build\lib\Release\vpb.dll : fatal error LNK1169: one or more multiply defined symbols found
复制代码
我用的是VS2010编译的,这个问题该怎么解决啊

该用户从未签到

发表于 2011-7-11 08:31:10 | 显示全部楼层
看起来是您的工程配置在什么地方存在问题所致

该用户从未签到

 楼主| 发表于 2011-7-11 10:35:16 | 显示全部楼层
搞定了,在link里面加个/Force:Mutipuly就好了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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