查看: 2885|回复: 0

osgAudio编译教程

[复制链接]

该用户从未签到

发表于 2014-5-31 00:41:54 | 显示全部楼层 |阅读模式
本帖最后由 friendbaby 于 2014-5-31 00:51 编辑

写在前面的话:貌似没有osgAudio的编译教程,刚好我编译完了,就记录下来,发给大家,第一次发帖。对于能够编译OSG的同学们来说,编译osgAudio没什么困难,因为他们步骤都是相同的,所以也不算什么教程,大家都会的东西

osgAudio编译教程

我的机器环境:
Windows7 x64
vs2010
OpenSceneGraph-3.2.1-rc2(x64)

相关准备:
osg肯定要编译好,由于osgAudio库很久没更新了,最后更新应该是2010年, 官方使用的是OSG 2.9.6,不过并无大碍;
osgAudio_02_00_00源码(我会上传)

osgAudio支持两类后端,OpenAL and FMOD,必选其一,由于我对openXXX这类的库有好感,我选择了OpenAL。
FMOD没有尝试。

选择了OpenAL就需要以下插件:
•OpenAL
•freeALUT
•OggVorbis

编译准备:
还是和OSG编译一样,要建立好文件夹,这里我推荐给大家一种合理的文件夹结构:
编译的文件夹和运行的文件夹分开,例如:
E:\OSG\Build-x64\osgAudio-2.0.0   这里存放编译的文件夹,CMAKE产生的文件夹可以放在E:\OSG\Build-x64\osgAudio-2.0.0\Build里

运行文件夹:
E:OSG\x64\osgAudio-2.0.0

这样即能把编译和运行分开,也支持多版本的OSG,包括x86,x64.


编译步骤:
安装OpenAL11CoreSDK,无需编译
编译FreeALUT,我编译FreeALUT的时候cmake总是出错,于是我使用了admin目录下的VC工程编译的,需要注意的是,要编译动态库,我编译的静态库在编译osgAudio会有连接错误,动态库没问题,我不清楚是否是我的失误,还是大家都这样;
编译libogg,因为FreeALUT编译了动态库,libogg我也就编译成了动态库,包括后面的libvorbis;
编译libvorbis,这个库含有两个lib,libvorbis和libvorbisfile,不要少了

libogg和libvorbis都包含VS2010的工程文件,无需cmake了,在win32目录下。

上述三方库编译好后,就可以cmake osgAudio了

以下是必填项:

0_ENABLE_SUBSYSTEM_OPENAL 选上
0_ENABLE_SUBSYSTEM_FMOD 取消选择
0_ENABLE_EXAPLES_OSGAUDIO 选上


ALUT_INCLUDE_DIR
ALUT_LIBRARY
ALUT_LIBRARY_DEBUG(如果编译了DEBUG库,就填上,不填亦可)

OGG_INCLUDE_DIR
OGG_LIBRARY
OGG_LIBRARY_DEBUG

OPENAL_INCLUDE_DIR
OPENAL_LIBRARY
OPENAL_LIBRARY_DEBUG

OSG_ROOT
OSG_BUILD_DIR

VORBIS_INCLUDE_DIR
VORBIS_LIBRARY
VORBIS_LIBRARY_DEBUG

VORBISFILE_INCLUDE_DIR
VORBISFILE_LIBRARY
VORBISFILE_LIBRARY_DEBUG

以上都是刚编译好的库,大家应该明白怎么填


还有别忘了:
CMAKE_INSTALL_PRIFIX  你打算把osgAudio安装到哪(E:OSG\x64\osgAudio-2.0.0)

QQ图片20140531002956.jpg

如果没有错误,生成好vs2010工程后就可以编译了,编译过程很快,相对于OSG来说。

一般会有几个错误,都是例子的:

example_osgaudiolow_moving              error C2065: “M_PI”: 未声明的标识符

解决办法:删掉moving.cpp中的#define _USE_MATH_DEFINES,将_USE_MATH_DEFINES添加到工程属性的C++预处理器中。

example_osgaudio_multiple                   error C2039: “setVertexIndices”: 不是“osg::Geometry”的成员
解决办法:好像还有一个例子也是报类似的set***Indices错误,因为在最新的OSG中,这些set***Indices函数已经被声明为deprecated,不建议使用了,我不知道是否有替代函数,我只是简单了把他们注释掉了(反正也是例子,无所谓了)


编译好后,install也会有错误,这个我没有去检查,而是手动install,也就是把相应的dll lib include 等等复制到E:OSG\x64\osgAudio-2.0.0,还要data文件夹过去

最后把“运行文件夹\data”文件目录添加到OSG_FILE_PATH中。


libogg-1.3.1.zip (620.41 KB, 下载次数: 23)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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