我正试图在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一起使用?
提前致谢。
答案 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
......包括之前。