查看: 3288|回复: 14

关于使用Visual studio 2005编译OSG工程的问题!

[复制链接]

该用户从未签到

发表于 2009-3-31 22:34:19 | 显示全部楼层 |阅读模式
如题,本人Vista系统,使用VS2005 SP1,装了OSG 2.8.0的安装包,然后在VS的工程属性中设置了OSG的include、lib的所在路径,已设置系统的环境变量,用命令行运行osgVersion等程序正常,但是用VS2005编译工程成功后(Debug模式),运行时就会出现莫名其妙的错误,提示什么运行时的错误。。。

请前辈帮忙分析一下还有什么没设置好,这是什么问题?

真不好意思,但是发的太急了。。

当时为了测试,就写了一段极其简单的程序,

#include <osg/Geometry>
#include <osg/Group>
#include <osgDB/ReadFile>
#include <osgViewer/Viewer>


int main(int argc, char** argv)
{
        osg::Group* root = new osg::Group;

    osg::Node* model = osgDB::readNodeFile( "boy_run1_0.obj" );

        root->addChild( model );

        osgViewer::Viewer viewer;
        viewer.setSceneData( root );
       
        return viewer.run();

}

结果运行时错误提示如图片:
osg.jpg

[ 本帖最后由 sbayanami 于 2009-3-31 23:15 编辑 ]

该用户从未签到

发表于 2009-3-31 22:40:08 | 显示全部楼层
这个取决于您的程序编写,“莫名其妙”并不能给问题的分析带来什么帮助。也许贴上一段代码或者更加详细地描述您的问题会有助于大家了解和解决您的疑惑

该用户从未签到

发表于 2009-4-4 19:30:44 | 显示全部楼层
我的XP+VS2005+OSG2.2出现了和楼主一样的问题,等待解决。。

该用户从未签到

发表于 2009-4-4 23:06:31 | 显示全部楼层
楼主的vista系统不能直接使用2.8的安装包,据我所知现有的所有安装包都是在XP下制作的。vista用户只有自己重新编译osg并生成专用于此系统上的链接库方能使用。

至于rpaul朋友的问题,也许您也可以查看一下自己所使用的安装包是否有相同的问题,例如您在vs2008上使用基于vs2005制作的osg安装包,这样多半会出错误。个人认为避免此类问题的最佳方案是自己从源代码编译osg

该用户从未签到

发表于 2009-4-6 19:20:43 | 显示全部楼层
我的vista可以用2.8的安装包,但是2.6的会出现以上问题。。只怪我也不专业呀。。

该用户从未签到

发表于 2009-4-7 01:41:34 | 显示全部楼层
多谢版主和各位帮忙和提供思路。
考虑到自己编译可能会碰到更多困难,还是想在Binary方面努努力试试。这一天折腾得。。。终于把例子运行出来了。
 1. 以为是因为VS2005没打SP1的原因。花N个小时费了半天劲把SP1打上,问题如故。
    2. 以为是2.2安装包的问题,换个2.4安装包装上,问题如故。
    3. 以为是XPSP3的原因。因为说明文件里指出,Binary是XPSP2下编译出来的。总不会要我重装个SP2的系统吧。。
    4. 最后终于试出来了。编译例子时把Debug改成Release。就正常运行成功了。
奇怪哪。难怪例子(FreeSouth的OpenSceneGraph程序设计23页例一)里说要在链接时指定osgd.lib osgDBd.lib osgViewerd.lib,而我只找到osg.lib osgDB.lib osgViewer.lib。当时还顺手就把库名给改过来了。没想到还得配套使用呐。。

楼主我的错误现象和你的几乎一样,你的原因不会也和我一样吧?哈

该用户从未签到

 楼主| 发表于 2009-4-8 01:28:32 | 显示全部楼层
原帖由 Prout 于 2009-4-6 19:20 发表
我的vista可以用2.8的安装包,但是2.6的会出现以上问题。。只怪我也不专业呀。。


您的vista系统是直接装好OSG2.8的安装包,设置路径后就能编译运行了么?您能再详细说说还有什么需要注意的问题么?谢谢了~

该用户从未签到

 楼主| 发表于 2009-4-8 01:29:45 | 显示全部楼层

www.openscenegraph.org

原帖由 rpaul 于 2009-4-7 01:41 发表
多谢版主和各位帮忙和提供思路。
考虑到自己编译可能会碰到更多困难,还是想在Binary方面努努力试试。这一天折腾得。。。终于把例子运行出来了。
 1. 以为是因为VS2005没打SP1的原因。花N个小时费了半天劲把SP1打 ...



确实不是Release的问题。。

该用户从未签到

发表于 2009-4-9 14:56:02 | 显示全部楼层
我的也是,在Debug下编译能通过,但运行有问题,在Release下编译就好了

该用户从未签到

 楼主| 发表于 2009-4-12 20:05:28 | 显示全部楼层
哎。。我自己试了试用cmake生成了相应的文件,但还是问题依旧。。。郁闷。。。

该用户从未签到

发表于 2009-4-13 00:16:37 | 显示全部楼层
这个你可以自己编译试试,,,安装包的环境在安装包下载的页面已有详细的说明~~~~~~

该用户从未签到

 楼主| 发表于 2009-4-14 20:35:14 | 显示全部楼层
原帖由 FlySky 于 2009-4-13 00:16 发表
这个你可以自己编译试试,,,安装包的环境在安装包下载的页面已有详细的说明~~~~~~



编译完了,还是问题依旧。。。

该用户从未签到

发表于 2009-4-15 00:04:23 | 显示全部楼层
不清楚你是否正确成功的编译,,,,你的第三方库也要自己编译啊??

该用户从未签到

 楼主| 发表于 2009-4-16 01:45:25 | 显示全部楼层
原帖由 FlySky 于 2009-4-15 00:04 发表
不清楚你是否正确成功的编译,,,,你的第三方库也要自己编译啊??


我试试,谢谢了~

该用户从未签到

发表于 2009-4-18 12:52:02 | 显示全部楼层
很有可能是你的链接库的问题    你的链接库是R的版本   所以在R下能通过   你把链接库换成D的版本就可以了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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