查看: 1893|回复: 6

照教程代码做,编译通过,运行出错。

[复制链接]

该用户从未签到

发表于 2009-6-22 11:54:41 | 显示全部楼层 |阅读模式
今天早上来试了一下,本站中的教程内容:
第一课 OpenSceneGraph几何体的绘制

我的环境是windows2003 OSG2.2 VS2003

运行上面的例子代码。全部编译通过。

运行的时候,在root->addChild(pyramidGeode); 时报错。Debug与Relase 都一样的错。




是不是环境配置的问题。
VS2003定位的代码是在malloc.c
#ifndef _WIN64
        if (__active_heap != __SYSTEM_HEAP)
            size = (size + BYTES_PER_PARA - 1) & ~(BYTES_PER_PARA - 1);
#endif  /* _WIN64 */
        return HeapAlloc(_crtheap, 0, size);
}
1.gif

该用户从未签到

发表于 2009-6-22 12:27:24 | 显示全部楼层
有可能是您的环境配置问题,不知道您的工程依赖库是如何设置的,是否打开了/MD选项;以及您的osg本身是否可用(可以执行osgviewer看一下)

该用户从未签到

 楼主| 发表于 2009-6-22 13:14:07 | 显示全部楼层

我是这样设置的

依赖附加库:osg.lib osgGA.lib osgDB.lib osgViewer.lib osgText.lib osgUtil.lib OpenThreads.lib

打开了/MD 多线程选项。

而且 osgviewer cow.osg 是正常运行的。包括在程序中写代码:

#include <osgViewer/Viewer>
#include <osgDB/ReadFile>

int main( int, char ** )
{
        osgViewer::Viewer viewer;
        viewer.setSceneData( osgDB::readNodeFile( "cow.osg" ) );
        return viewer.run();
}

是可以运行的。

该用户从未签到

发表于 2009-6-22 13:28:20 | 显示全部楼层
那么最好把您的工程发上来看一下,不要附带那些.obj之类的中间文件

该用户从未签到

 楼主| 发表于 2009-6-22 13:46:19 | 显示全部楼层

好的,这个项目很小,测试的。

项目文件见附件。

P2.rar

4.65 KB, 下载次数: 101, 下载积分: 威望 1

该用户从未签到

发表于 2009-6-22 20:51:41 | 显示全部楼层
您的程序在我这里测试通过,正常可用。

由于您的项目文件中没有包含osg的头文件路径和依赖库文件路径,所以我猜测您是否设置了多个版本的osg的路径,以致在使用时出现了混乱

该用户从未签到

 楼主| 发表于 2009-6-23 10:47:45 | 显示全部楼层

好象是

下决心重装一下机器。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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