查看: 3432|回复: 8

vs2005编译osg出现下列问题,请问是什么原因?

[复制链接]

该用户从未签到

发表于 2009-1-2 10:46:24 | 显示全部楼层 |阅读模式
Terrain.obj:error LINK2019 无法解析外部符号
LightSouce.obj LINK1036 无效。。。

该用户从未签到

发表于 2009-1-2 10:58:56 | 显示全部楼层
您的OSG是什么版本?下载的zip压缩包还是使用SVN获取的?是使用CMake生成工程文件的吗?此外我似乎是第一次看到LNK1036这个错误,能告诉我这个错误的解释是什么吗,我在MSDN上找不到它的释义?

该用户从未签到

 楼主| 发表于 2009-1-2 15:42:19 | 显示全部楼层
osg为2.7.8,下载的是压缩包的,是用cmake。

Terrain.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: void __thiscall osgTerrain::Terrain::setTerrainTechniquePrototype(class osgTerrain::TerrainTechnique *)" (__imp_?setTerrainTechniquePrototype@Terrain@osgTerrain@@QAEXPAVTerrainTechnique@2@@Z),该符号在函数 "public: __thiscall `anonymous namespace'::reflector28::reflector28(void)" (??0reflector28@?A0xb38acae9@@QAE@XZ) 中被引用
D:\OSG\OpenSceneGraph\lib\Release\..\..\bin\osgPlugins-2.7.8\osgwrapper_osgTerrain.dll : fatal error LNK1120: 1 个无法解析的外部命令
生成日志保存在“file://d:\OSG\OpenSceneGraph\src\osgWrappers\osgwrapper_osgTerrain.dir\Release\BuildLog.htm”
Wrapper osgTerrain - 2 个错误,0 个警告
------ 已启动生成: 项目: Wrapper osgTerrain, 配置: Debug Win32 ------
正在链接...
Terrain.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: void __thiscall osgTerrain::Terrain::setTerrainTechniquePrototype(class osgTerrain::TerrainTechnique *)" (__imp_?setTerrainTechniquePrototype@Terrain@osgTerrain@@QAEXPAVTerrainTechnique@2@@Z),该符号在函数 "public: __thiscall `anonymous namespace'::reflector28::reflector28(void)" (??0reflector28@?A0xb38acae9@@QAE@XZ) 中被引用
D:\OSG\OpenSceneGraph\lib\Debug\..\..\bin\osgPlugins-2.7.8\osgwrapper_osgTerraind.dll : fatal error LNK1120: 1 个无法解析的外部命令
生成日志保存在“file://d:\OSG\OpenSceneGraph\src\osgWrappers\osgwrapper_osgTerrain.dir\Debug\BuildLog.htm”
Wrapper osgTerrain - 2 个错误,0 个警告
------ 已启动生成: 项目: Wrapper osg, 配置: Debug Win32 ------
正在链接...
.\osgwrapper_osg.dir\Debug\LightSource.obj : fatal error LNK1136: 无效或损坏的文件
生成日志保存在“file://d:\OSG\OpenSceneGraph\src\osgWrappers\osgwrapper_osg.dir\Debug\BuildLog.htm”
Wrapper osg - 1 个错误,0 个警告
------ 已启动生成: 项目: Plugins txp, 配置: Debug Win32 ------
正在链接...
CVTRES : fatal error CVT1107: “d:\OSG\OpenSceneGraph\src\osgPlugins\txp\osgdb_txp.dir\Debug\TXPParser.obj”已损坏
LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
生成日志保存在“file://d:\OSG\OpenSceneGraph\src\osgPlugins\txp\osgdb_txp.dir\Debug\BuildLog.htm”
Plugins txp - 2 个错误,0 个警告

该用户从未签到

发表于 2009-1-2 16:59:42 | 显示全部楼层
应该是lib问题吧,,,你把lib加上去,,,或者你的机器上版本混乱~~~~~~

该用户从未签到

 楼主| 发表于 2009-1-2 17:26:22 | 显示全部楼层

回复

我加进去了也不可以,机子上就一个版本。

该用户从未签到

发表于 2009-1-2 20:54:10 | 显示全部楼层
感觉LNK2019的问题可能是您下载的压缩包存在一定问题?就算是官方的压缩包有的时候也会有疏漏,而且现在是圣诞和新年期间,新的版本正好没有人维护。您可以下载2.7.7的压缩包或者使用SVN获取一个版本再试一下。

至于LNK1136的问题,我只能说这可能是微软编译器自己造成的数据损坏,建议Clean所有目标文件并Rebuild。当然如果您下载别的版本的话,把这个2.8.8的目录整个删掉就可以。

该用户从未签到

 楼主| 发表于 2009-1-2 22:15:26 | 显示全部楼层

现在的问题只有关于Terrain.obj的了,请问怎末解决呢?

正在链接...
Terrain.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: void __thiscall osgTerrain::Terrain::setTerrainTechniquePrototype(class osgTerrain::TerrainTechnique *)" (__imp_?setTerrainTechniquePrototype@Terrain@osgTerrain@@QAEXPAVTerrainTechnique@2@@Z),该符号在函数 "public: __thiscall `anonymous namespace'::reflector28::reflector28(void)" (??0reflector28@?A0xb38acae9@@QAE@XZ) 中被引用
D:\OSG\OpenSceneGraph\lib\RelWithDebInfo\..\..\bin\osgPlugins-2.7.8\osgwrapper_osgTerrain.dll : fatal error LNK1120: 1 个无法解析的外部命令
生成日志保存在“file://d:\OSG\OpenSceneGraph\src\osgWrappers\osgwrapper_osgTerrain.dir\RelWithDebInfo\BuildLog.htm”
Wrapper osgTerrain - 2 个错误,0 个警告
------ 已启动生成: 项目: Wrapper osgTerrain, 配置: MinSizeRel Win32 ------
正在链接...
Terrain.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: void __thiscall osgTerrain::Terrain::setTerrainTechniquePrototype(class osgTerrain::TerrainTechnique *)" (__imp_?setTerrainTechniquePrototype@Terrain@osgTerrain@@QAEXPAVTerrainTechnique@2@@Z),该符号在函数 "public: __thiscall `anonymous namespace'::reflector28::reflector28(void)" (??0reflector28@?A0xb38acae9@@QAE@XZ) 中被引用
D:\OSG\OpenSceneGraph\lib\MinSizeRel\..\..\bin\osgPlugins-2.7.8\osgwrapper_osgTerrain.dll : fatal error LNK1120: 1 个无法解析的外部命令
生成日志保存在“file://d:\OSG\OpenSceneGraph\src\osgWrappers\osgwrapper_osgTerrain.dir\MinSizeRel\BuildLog.htm”
Wrapper osgTerrain - 2 个错误,0 个警告
------ 已启动生成: 项目: Wrapper osgTerrain, 配置: Release Win32 ------
正在链接...
Terrain.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: void __thiscall osgTerrain::Terrain::setTerrainTechniquePrototype(class osgTerrain::TerrainTechnique *)" (__imp_?setTerrainTechniquePrototype@Terrain@osgTerrain@@QAEXPAVTerrainTechnique@2@@Z),该符号在函数 "public: __thiscall `anonymous namespace'::reflector28::reflector28(void)" (??0reflector28@?A0xb38acae9@@QAE@XZ) 中被引用
D:\OSG\OpenSceneGraph\lib\Release\..\..\bin\osgPlugins-2.7.8\osgwrapper_osgTerrain.dll : fatal error LNK1120: 1 个无法解析的外部命令
生成日志保存在“file://d:\OSG\OpenSceneGraph\src\osgWrappers\osgwrapper_osgTerrain.dir\Release\BuildLog.htm”
Wrapper osgTerrain - 2 个错误,0 个警告
------ 已启动生成: 项目: Wrapper osgTerrain, 配置: Debug Win32 ------
正在链接...
Terrain.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: void __thiscall osgTerrain::Terrain::setTerrainTechniquePrototype(class osgTerrain::TerrainTechnique *)" (__imp_?setTerrainTechniquePrototype@Terrain@osgTerrain@@QAEXPAVTerrainTechnique@2@@Z),该符号在函数 "public: __thiscall `anonymous namespace'::reflector28::reflector28(void)" (??0reflector28@?A0xb38acae9@@QAE@XZ) 中被引用
D:\OSG\OpenSceneGraph\lib\Debug\..\..\bin\osgPlugins-2.7.8\osgwrapper_osgTerraind.dll : fatal error LNK1120: 1 个无法解析的外部命令
生成日志保存在“file://d:\OSG\OpenSceneGraph\src\osgWrappers\osgwrapper_osgTerrain.dir\Debug\BuildLog.htm”
Wrapper osgTerrain - 2 个错误,0 个警告
------ 已启动生成: 项目: Plugins txp, 配置: Debug Win32 ------

该用户从未签到

发表于 2009-1-2 22:35:29 | 显示全部楼层
osgIntrospection是专用于非C/C++编程(例如Java,C#等)用户使用OSG而提供的“内省”库,对于C++用户而言基本上没有用。您的错误都是出在这个库上面,可以在CMake中取消相应的选项(BUILD_OSG_WRAPPERS)以跳过出错地方的编译

如果您一定要使用osgIntrospection库的话,可以打开include/osgTerrain/Terrain,修改setTerrainTechniquePrototype函数,改成:
  1. void setTerrainTechniquePrototype(TerrainTechnique *) {}
复制代码

该用户从未签到

 楼主| 发表于 2009-1-2 22:47:07 | 显示全部楼层

太感谢了,我试试看。

不过我现在正在重新编译wrapper osgTerrain这个模块,估计要等一段时间了,总之,谢谢您! :lol :lol :lol
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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