0

我正在尝试使用 Ogg/Vorbis 和 OpenAL 在我的游戏中获得声音。现在我只是试图加载一个 .ogg 文件并读取它的数据,我实际上并没有对它做任何事情。我第一次尝试使用ov_open,但是,文档说我真的应该ov_fopen在 Windows 上使用。

但是,当我尝试使用它时,我得到以下信息:

1>AudioManager.obj : error LNK2019: unresolved external symbol _ov_fopen 
referenced in function "private: static struct SomeGame::SoundData * __cdecl
SomeGame::AudioManager::LoadOGG(char *)"
(?LoadOGG@AudioManager@SomeGame@@CAPAUSoundData@2@PAD@Z)

...当我谷歌“未解析的外部符号_ov_fopen”时,我得到了一个结果。而且是日文的。

所以我尝试下载 ogg 和 vorbis 源并编译它,并将它们插入项目中,但它仍然给我同样的错误。

基本上,我如何加载 Ogg/Vorbis 文件以在 Windows 上与 OpenAL 一起使用?

提前致谢。

4

2 回答 2

1

你在链接 libogg、libvorbis 和 libvorbisfile 吗?

于 2010-04-18T06:46:56.953 回答
1

继 SurvivalMachine 的回答之后;

Dependency Walker显示 _ov_fopen 肯定在 libvorbisfile.dll 中定义

或者在 linux 上,“nm libvorbisfile.a | grep _ov_fopen”显示 _ov_fopen 在那里定义。

#include <vorbis/vorbisfile.h>

确保您的链接器知道在哪里可以找到 lib 文件。

请注意,您需要使用 -Wunused-variable 或进行编译;

#define OV_EXCLUDE_STATIC_CALLBACKS

...在包含之前。

于 2010-08-16T16:43:47.743 回答