查看: 1783|回复: 6

[VS2010+OSG+win7 64]编译完OSG后,无法进行运行例程,求大神们指导~

[复制链接]

该用户从未签到

发表于 2012-12-1 13:01:02 | 显示全部楼层 |阅读模式


搭建VS2010 + OSG + win7 64位环境已经第三天了,搞不定啊~~~

1,cmake设置
  
    QQ截图20121201124118.png

      QQ截图20121201124317.png

2,已完成编译OSG,编译例程发生错误:

   fistosg.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: void __thiscall osgViewer::Viewer::`vbase destructor'(void)" (__imp_??_DViewer@osgViewer@@QAEXXZ),该符号在函数 _main 中被引用
1>fistosg.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: virtual int __thiscall osgViewer::Viewer::run(void)" (__imp_?run@Viewer@osgViewer@@UAEHXZ),该符号在函数 _main 中被引用
1>fistosg.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: virtual void __thiscall osgViewer::Viewer::setSceneData(class osg::Node *)" (__imp_?setSceneData@Viewer@osgViewer@@UAEXPAVNode@osg@@@Z),该符号在函数 _main 中被引用
1>fistosg.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: __thiscall osgViewer::Viewer::Viewer(void)" (__imp_??0Viewer@osgViewer@@QAE@XZ),该符号在函数 _main 中被引用
1>fistosg.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) class osg::Node * __cdecl osgDB::readNodeFile(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class osgDB::Options const *)" (__imp_?readNodeFile@osgDB@@YAPAVNode@osg@@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PBVOptions@1@@Z),该符号在函数 "class osg::Node * __cdecl osgDB::readNodeFile(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (?readNodeFile@osgDB@@YAPAVNode@osg@@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) 中被引用
1>fistosg.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: class osgDB::Options * __thiscall osgDB::Registry::getOptions(void)" (__imp_?getOptions@Registry@osgDB@@QAEPAVOptions@2@XZ),该符号在函数 "class osg::Node * __cdecl osgDB::readNodeFile(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (?readNodeFile@osgDB@@YAPAVNode@osg@@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) 中被引用
1>fistosg.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: static class osgDB::Registry * __cdecl osgDB::Registry::instance(bool)" (__imp_?instance@Registry@osgDB@@SAPAV12@_N@Z),该符号在函数 "class osg::Node * __cdecl osgDB::readNodeFile(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (?readNodeFile@osgDB@@YAPAVNode@osg@@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) 中被引用
1>d:\documents\visual studio 2010\Projects\firstosg\Debug\firstosg.exe : fatal error LNK1120: 7 个无法解析的外部命令
1>
1>生成失败。
1>
1>已用时间 00:00:00.15
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========


我问了一下,原因是库文件没有加进 项目属性->链接器->输入->附加依赖项,但是我已经加进去啦:

OpenThreadsd.lib;osgd.lib;osgDBd.lib;osgUtild.lib;osgGAd.lib;osgViewerd.lib;osgTextd.lib;

QQ截图20121201124649.png QQ截图20121201124834.png

于是我认为是环境变量的问题,我的环境变量设置如下:

QQ截图20121201125337.png QQ截图20121201125435.png

发现编译例程还是出现上述问题,杯具啊,是不是win7 64位的库不对啊,cmake下一定要选Visual Studio 10(32位sln解决方案)的吗?但是我选这个编译OSG的时候会出错啊、、

求大神指导、、如果实在不行的话我只能按照刚找的这种办法来做了 OSG VS2010_安装.doc (466.5 KB, 下载次数: 11)

该用户从未签到

 楼主| 发表于 2012-12-1 13:04:26 | 显示全部楼层
又要重新编译的话,总感觉会有一种蛋蛋的忧伤(时间太长啦,3小时左右) = =

该用户从未签到

发表于 2012-12-1 14:03:45 | 显示全部楼层
你的机子是64位还是32位?

该用户从未签到

 楼主| 发表于 2012-12-1 14:06:31 | 显示全部楼层
雨夜骇客 发表于 2012-12-1 14:03
你的机子是64位还是32位?

64位的

该用户从未签到

发表于 2012-12-1 14:13:32 | 显示全部楼层
估计你要重新编译了,我的也是64,当时选的32位没问题的

该用户从未签到

 楼主| 发表于 2012-12-1 14:27:41 | 显示全部楼层
雨夜骇客 发表于 2012-12-1 14:13
估计你要重新编译了,我的也是64,当时选的32位没问题的

嗯,刚才试了导入lib文件,还是不行,那就重来吧,谢啦

该用户从未签到

发表于 2012-12-1 16:07:13 | 显示全部楼层
dadai5ai 发表于 2012-12-1 14:27
嗯,刚才试了导入lib文件,还是不行,那就重来吧,谢啦

不客气。。我也是初学。。。互相帮助
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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