查看: 1735|回复: 7

Freeconv编译时遇到新版本vpb中BuildOptions报错的问题

[复制链接]

该用户从未签到

发表于 2009-8-30 18:23:12 | 显示全部楼层 |阅读模式
编译的过程中在BuildOptions这个文件报了348个错误,都是类似于如下的错误:

1>D:\osg\vpb\include\vpb/BuildOptions(276) : error C2143: 语法错误 : 缺少“}”(在“常量”的前面)
1>D:\osg\vpb\include\vpb/BuildOptions(276) : error C2059: 语法错误 : “常量”
1>D:\osg\vpb\include\vpb/BuildOptions(277) : error C2143: 语法错误 : 缺少“;”(在“}”的前面)
1>D:\osg\vpb\include\vpb/BuildOptions(277) : error C2238: 意外的标记位于“;”之前
1>D:\osg\vpb\include\vpb/BuildOptions(52) : error C2065: “_directory”: 未声明的标识符
1>D:\osg\vpb\include\vpb/BuildOptions(54) : error C2065: “_outputTaskDirectories”: 未声明的标识符
1>D:\osg\vpb\include\vpb/BuildOptions(57) : error C2065: “_tileBasename”: 未声明的标识符
1>D:\osg\vpb\include\vpb/BuildOptions(60) : error C2065: “_tileExtension”: 未声明的标识符
1>D:\osg\vpb\include\vpb/BuildOptions(63) : error C2065: “_imageExtension”: 未声明的标识符
1>D:\osg\vpb\include\vpb/BuildOptions(66) : error C2065: “_powerOfTwoImages”: 未声明的标识符
1>D:\osg\vpb\include\vpb/BuildOptions(70) : error C2065: “_archiveName”: 未声明的标识符
1>D:\osg\vpb\include\vpb/BuildOptions(75) : error C2065: “_intermediateBuildName”: 未声明的标识符
1>D:\osg\vpb\include\vpb/BuildOptions(78) : error C2065: “_logFileName”: 未声明的标识符
1>D:\osg\vpb\include\vpb/BuildOptions(81) : error C2065: “_taskFileName”: 未声明的标识符
1>D:\osg\vpb\include\vpb/BuildOptions(84) : error C2065: “_comment”: 未声明的标识符
1>D:\osg\vpb\include\vpb/BuildOptions(88) : error C2065: “_maximumTileImageSize”: 未声明的标识符
1>D:\osg\vpb\include\vpb/BuildOptions(91) : error C2065: “_maximumTileTerrainSize”: 未声明的标识符
1>D:\osg\vpb\include\vpb/BuildOptions(94) : error C2065: “_maximumVisiableDistanceOfTopLevel”: 未声明的标识符
1>D:\osg\vpb\include\vpb/BuildOptions(97) : error C2065: “_radiusToMaxVisibleDistanceRatio”: 未声明的标识符
1>D:\osg\vpb\include\vpb/BuildOptions(100) : error C2065: “_verticalScale”: 未声明的标识符
1>D:\osg\vpb\include\vpb/BuildOptions(103) : error C2065: “_skirtRatio”: 未声明的标识符
1>D:\osg\vpb\include\vpb/BuildOptions(106) : error C2065: “_defaultColor”: 未声明的标识符
1>D:\osg\vpb\include\vpb/BuildOptions(109) : error C2065: “_useInterpolatedImagerySampling”: 未声明的标识符
1>D:\osg\vpb\include\vpb/BuildOptions(112) : error C2065: “_useInterpolatedTerrainSampling”: 未声明的标识符
1>D:\osg\vpb\include\vpb/BuildOptions(115) : error C2065: “_buildOverlays”: 未声明的标识符
1>D:\osg\vpb\include\vpb/BuildOptions(118) : error C2065: “_reprojectSources”: 未声明的标识符
1>D:\osg\vpb\include\vpb/BuildOptions(121) : error C2065: “_generateTiles”: 未声明的标识符
1>D:\osg\vpb\include\vpb/BuildOptions(124) : error C2065: “_convertFromGeographicToGeocentric”: 未声明的标识符
1>D:\osg\vpb\include\vpb/BuildOptions(128) : error C2065: “_useLocalTileTransform”: 未声明的标识符
1>D:\osg\vpb\include\vpb/BuildOptions(131) : error C2065: “_simplifyTerrain”: 未声明的标识符
1>D:\osg\vpb\include\vpb/BuildOptions(135) : error C2065: “_decorateWithCoordinateSystemNode”: 未声明的标识符
1>D:\osg\vpb\include\vpb/BuildOptions(139) : error C2065: “_decorateWithMultiTextureControl”: 未声明的标识符
1>D:\osg\vpb\include\vpb/BuildOptions(143) : error C2065: “_writeNodeBeforeSimplification”: 未声明的标识符
1>D:\osg\vpb\include\vpb/BuildOptions(153) : error C2065: “_databaseType”: 未声明的标识符
1>D:\osg\vpb\include\vpb/BuildOptions(163) : error C2065: “_geometryType”: 未声明的标识符
1>D:\osg\vpb\include\vpb/BuildOptions(180) : error C2065: “_textureType”: 未声明的标识符
1>D:\osg\vpb\include\vpb/BuildOptions(183) : error C2065: “_maxAnisotropy”: 未声明的标识符
1>D:\osg\vpb\include\vpb/BuildOptions(194) : error C2065: “_mipMappingMode”: 未声明的标识符
1>D:\osg\vpb\include\vpb/BuildOptions(199) : error C2065: “_destinationCoordinateSystemString”: 未声明的标识符
1>D:\osg\vpb\include\vpb/BuildOptions(201) : error C2065: “_destinationCoordinateSystem”: 未声明的标识符
1>D:\osg\vpb\include\vpb/BuildOptions(201) : error C2227: “->setFormat”的左边必须指向类/结构/联合/泛型类型
1>        类型是“'unknown-type'”
1>D:\osg\vpb\include\vpb/BuildOptions(202) : error C2227: “->getFormat”的左边必须指向类/结构/联合/泛型类型
1>        类型是“'unknown-type'”
1>D:\osg\vpb\include\vpb/BuildOptions(211) : error C2228: “.get”的左边必须有类/结构/联合

第一次错误是发生在这个位置:
   enum LayerInheritance
        {
            INHERIT_LOWEST_AVAILABLE,
            INHERIT_NEAREST_AVAILABLE,
            NO_INHERITANCE
        };
本以为是重定义,但我未发现其他定义的位置。
感觉很纳闷。
我也理解freeconv是在osg1.2+vpb老版本上开发的,但是遇到这种问题却找不到原因确实令人不爽。是否能指点下错误到底是什么原因?

该用户从未签到

发表于 2009-8-30 19:14:30 | 显示全部楼层
如果是重定义的话,可以尝试在头文件顶部设置#undef

该用户从未签到

发表于 2009-8-31 09:22:22 | 显示全部楼层
这个没什么,,新版本做了很多更新,,,你自己改写一下代码就好了~~~~~

该用户从未签到

 楼主| 发表于 2009-8-31 10:12:57 | 显示全部楼层
用#undef把这个枚举中的NO_INHERITANCE屏蔽掉后错误果然就少了很多,然后把其中一些变化诸如vpb:ataset::Source改为vpb::Source之后错误基本就没有了。
谢谢舵主、瓢把子们

该用户从未签到

 楼主| 发表于 2009-8-31 18:46:00 | 显示全部楼层
2# array


现在又遇到一个问题,到连接的时候,抱错:

错误        1        error LNK2001: 无法解析的外部符号 "class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl vpb::coordinateSystemStringToWTK(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (?coordinateSystemStringToWTK@vpb@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@ABV23@@Z)        OsgDem.obj


我也不确定错误出在哪里

该用户从未签到

发表于 2009-8-31 20:30:07 | 显示全部楼层
coordinateSystemStringToWTK这个函数的实现代码没有找到,您可以自己找一下这个函数是不是丢失了

该用户从未签到

 楼主| 发表于 2009-9-1 11:31:27 | 显示全部楼层
能找到coordinateSystemStringToWTK这个函数的实现。好奇怪啊!
还有可能是别的愿因吗

该用户从未签到

 楼主| 发表于 2009-9-2 00:30:22 | 显示全部楼层
搞定了,vpb没有在函数前面加__declspec(dllexport),所以在别的项目引用vpb库的时候就找不到。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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