Ogg / Vorbis:无法找到_ov_fopen

时间:2010-04-14 19:38:49

标签: c++ openal ogg vorbis

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

然而,当我尝试使用它时,我得到以下内容:

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源代码并进行编译,然后在项目中插入它们,但它仍然会给我同样的错误。

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

提前致谢。

2 个答案:

答案 0 :(得分:1)

您是否使用libogg,libvorbis和libvorbisfile进行链接?

答案 1 :(得分:0)

进一步了解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

......包括之前。