查看: 2300|回复: 13

编译array的osgrecipes出现很多无法解析的符号错误

[复制链接]

该用户从未签到

发表于 2012-7-11 23:16:25 | 显示全部楼层 |阅读模式
本帖最后由 redrose007 于 2012-7-11 23:17 编辑

如题,在我编译osgrecipes出现无法解析的外部符号,我仔细查看工程属性,发现附加依赖库里包含了相应的lib名,同时,也包含了相应的include等文件,也就是说配置上应该是没问题的,为啥还会出现这种错误呢,编译成功的xdjm给点经验,谢谢!

错误有这些:
错误4        error C2039: “GREATER”: 不是“osg::Texture”的成员        c:\Users\wei\Desktop\osgRecipes\trunk\cookbook\chapter10\ch10_08\depth_peeling.cpp        75        cookbook_10_08
我在cookbook_10_08中添加#include<osg\Texture>,问题依旧

错误11        error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: static void __cdecl osgUtil::SmoothingVisitor::smooth(class osg::Geometry &)" (__imp_?smooth@SmoothingVisitor@osgUtil@@SAXAAVGeometry@osg@@@Z),该符号在函数 "class osg::Geometry * __cdecl createSimpleGeometry(void)" (?createSimpleGeometry@@YAPAVGeometry@osg@@XZ) 中被引用        main.obj        cookbook_10_07
我查看附加依赖库,包含osgUtild.lib

该用户从未签到

 楼主| 发表于 2012-7-12 22:33:08 来自手机 | 显示全部楼层
怎么没人回复呢,难道大家都没有遇到这个问题?

该用户从未签到

发表于 2012-7-13 09:52:00 | 显示全部楼层
如果我没想错的话,这是您的OSG头文件和依赖库版本不一样导致的。最典型的可能性就是您更新了OSG的代码目录但是没有编译最新的debug依赖库

该用户从未签到

 楼主| 发表于 2012-7-14 22:07:51 | 显示全部楼层
array 发表于 2012-7-13 09:52
如果我没想错的话,这是您的OSG头文件和依赖库版本不一样导致的。最典型的可能性就是您更新了OSG的代码目录 ...

谢谢array大哥的回复,我仔细查看了一下,似乎不存在osg头文件和依赖库版本不一致,我用的是osg3.0的版本,lib文件啥的都是我自己编译生成的,我自己写程序或者运行例子程序啥的都没问题,所以不知道为什么编译您的recipes会出现这个问题,附:
错误1        error C2039: “GREATER”: 不是“osg::Texture”的成员c:\Users\wei\Desktop\osgRecipes\trunk\cookbook\chapter10\ch10_08\depth_peeling.cpp        75        cookbook_10_08
错误2        error C2065: “GREATER”: 未声明的标识符c:\Users\wei\Desktop\osgRecipes\trunk\cookbook\chapter10\ch10_08\depth_peeling.cpp        75        cookbook_10_08
……
一系列错误。

该用户从未签到

 楼主| 发表于 2012-7-14 22:23:07 | 显示全部楼层
array 发表于 2012-7-13 09:52
如果我没想错的话,这是您的OSG头文件和依赖库版本不一样导致的。最典型的可能性就是您更新了OSG的代码目录 ...

难道您用的是vs2005编译的库,我用vs2008编译的库,是这个问题?

该用户从未签到

发表于 2012-7-16 07:54:37 | 显示全部楼层
跟用哪个没关系,CMake都是源码级别的

该用户从未签到

 楼主| 发表于 2012-7-16 23:17:54 | 显示全部楼层
liuzhiyu123 发表于 2012-7-16 07:54
跟用哪个没关系,CMake都是源码级别的

事实证明,我用vs2005加相应的lib库后可编译成功大部分的例子,而用vs2008加相应lib还是出现上述问题,你用的哪个?
ps:我是用cmake生成的工程。

该用户从未签到

发表于 2012-7-17 08:17:24 | 显示全部楼层
redrose007 发表于 2012-7-16 23:17
事实证明,我用vs2005加相应的lib库后可编译成功大部分的例子,而用vs2008加相应lib还是出现上述问题,你 ...

Vs2008

该用户从未签到

 楼主| 发表于 2012-7-17 08:43:00 来自手机 | 显示全部楼层
liuzhiyu123 发表于 2012-7-17 08:17  Vs2008

嗯,明白了,可能是我cmake配置上有问题,晚上回家再检查检查,谢了哈!

该用户从未签到

 楼主| 发表于 2012-7-17 22:23:05 | 显示全部楼层
liuzhiyu123 发表于 2012-7-17 08:17
Vs2008

果然是cmake配置的问题,差不多搞定了,有一个编译不通过,10_4,错误是:error C2039: “BEGIN_BRACKET”: 不是“osgDB::InputStream”的成员,不知你有没有遇到这个问题?

该用户从未签到

发表于 2012-7-18 07:56:07 | 显示全部楼层
redrose007 发表于 2012-7-17 22:23
果然是cmake配置的问题,差不多搞定了,有一个编译不通过,10_4,错误是:error C2039: “BEGIN_BRACKET” ...

是你的OSG版本的问题

该用户从未签到

 楼主| 发表于 2012-7-18 08:52:14 来自手机 | 显示全部楼层
liuzhiyu123 发表于 2012-7-18 07:56  是你的OSG版本的问题

嗯,明白了,谢谢哈!

该用户从未签到

发表于 2013-5-16 10:30:09 | 显示全部楼层
这位兄弟,osgrecipes在哪里下载呢?怎么使用呢?能不能指点指点啊

该用户从未签到

发表于 2013-5-16 12:41:33 | 显示全部楼层
天行剑 发表于 2013-5-16 10:30
这位兄弟,osgrecipes在哪里下载呢?怎么使用呢?能不能指点指点啊

帖子里面已经有了
http://bbs.osgchina.org/forum.ph ... &extra=page%3D1
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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