此文为转载,原文请见www.hesicong.net
OpenSceneGraph是一个很大的开源工程,如果要自己编译的话要花一些功夫,而且开源的经常有一些依赖库的原因经常编译失败。开源还有一个问题就是文档有时候跟不上源代码,这个是最恼火的事情。通过好几天的摸索,反复阅读www.openscenegraph.org上面的相关文章,终于在VC++2005环境下面编译成功,现分享如下:
一、OSG源代码的获取:
1、SVN的方式:
参见http://www.openscenegraph.com/index.php?page=Downloads.SVN
缺点:速度比较慢
2、NightlyTarballs(推荐,以下叙述都以此为基础):
可以自动生成最新的源代码。地址:http://openscenegraph.org/downloads/developer
优点:速度快,源代码保持最新。
二、第三方代码获取:
如果你只编译Core osgXXXX的话可以跳过此步骤。
由于OSG的有一些plugin需要第三方库的支持,所以必需要找到相应的库才能编译完成。
从http://www.openscenegraph.com/index.php?page=Downloads.Dependencies可以得到一个WIN32库的压缩包(http://openscenegraph.org/downloads/dependencies/3rdParty_Win32binaries_2005_05_10.zip)
三、准备:
准备一个空目录,这里暂时取名为osg
建立4个目录:
解压下载的NightlyTarballs和3rdParty到这个目录
这时目录结构为:
3rdParty_xxxxxx
OpenSceneGraph_xxxxxx
OpenThreads_xxxxx
Producer_xxxx
重命名这些文件夹为3rdParty, OpenSceneGraph, OpenThreads, Producer
四、编译OpenThreads和Producer
进入OpenSceneGraph\OpenThreads\win32_src,打开OpenThreads.dsw,按提示转换项目。
然后各种类型Debug、Release、Debug Static、Release Static各编译一次,得到4种库,方便后面使用。
Producer的编译方法基本相同。
五、编译OpenSceneGraph:
此文为转载,原文请见www.hesicong.net
进入OpenSceneGraph\VisualStudio目录可以看到OpenSceneGraph.dsw,直接打开以后VS2005会提示转换为VC8项目,转换并保存sln文件。
由于文件较多,载入时间会相应较慢,请耐心等待。
下面正式开始批量编译。
1、首先保证磁盘有充足的空间。我选择Debug和Release模式编译了Core、Plugin、Example后,OSG目录总共消耗了3.23GB的硬盘空间。如果还有其它需要编译的项目可能需要更大的磁盘空间。
2、菜单-》生成-》批生成
3、选择需要编译的项目。
一般选择配置为Debug和Release的就够了。Debug用于自己写程序调试,Release用于最后的发行。千万不要选择Debug Static和Release Static这种静态链接库,否则消耗大量磁盘空间和编译时间。
编译的项目至少包含Core xxx。osgPlugin和Example视情况而定。
4、按“生成”就开始了漫长的编译过程,这时候可以出去晒晒太阳,或者出去好好的每餐一顿。如果还编译了Example的话那么推荐再睡一觉,这样就有更多的精力处理编译出错的问题:)
六、一般编译错误问题:
此文为转载,原文请见www.hesicong.net
1、找不到一些库,常见于OpenThread32.lib,Producer.lib等。这时候需要确认所有目录是不是放置正确。确认生成了必要的文件。
2、找不到头文件。如果是编译osgPlugin出错的话,你可以试着寻找一下所需要的其它库。3rdParty里面的库不完整,比如新的osgPlugin COLLDIA dae就无法编译,少了几个头文件。
3、找不到导出的函数。例如说找不到osgSim::xxxxxxx,确认你生成了osgSim这个项目。
4、更多问题:订阅OpenSceneGraph Mailing-List
六、运行Examples
编译好的examples最好在shell里面运行。
进入osg\OpenSceneGraph\VisualStudio,运行osgShell.bat。这个批处理文件会注册一些变量以便程序使用。
此文为转载,原文请见www.hesicong.net
七、如果还有问题
确认按照此步骤进行。如果还有问题,请留言。
其它问题请订阅OpenSceneGraph Mailling-list,前提是需要有一个良好的英文基础:)
祝大家成功!
此文为转载,原文请见www.hesicong.net
文章来源:http://www.hesicong.net/pjblog/default.asp?id=189
转载于:https://www.cnblogs.com/hesicong/archive/2007/03/28/695361.html
来源:https://blog.csdn.net/weixin_30483697/article/details/98913614