【问题标题】:Ogg/Vorbis: _ov_fopen cannot be foundOgg/Vorbis: _ov_fopen 找不到
【发布时间】:2011-02-08 02:06:19
【问题描述】:

我正在尝试将 Ogg/Vorbis 与 OpenAL 结合使用以在我的游戏中获得声音。现在我只是试图加载一个 .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 源并编译它,然后将它们插入项目中,但它仍然给我同样的错误。

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

提前致谢。

【问题讨论】:

    标签: c++ openal ogg vorbis


    【解决方案1】:

    您是否正在与 libogg、libvorbis 和 libvorbisfile 链接?

    【讨论】:

      【解决方案2】:

      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
      

      ...在包含之前。

      【讨论】:

        猜你喜欢
        • 2014-12-28
        • 2011-06-12
        • 2011-05-19
        • 2013-12-14
        • 2013-03-01
        • 2015-07-13
        • 1970-01-01
        • 1970-01-01
        • 2011-07-10
        相关资源
        最近更新 更多