OGG Vorbis: Определено, но не используется — как подавить?

У меня есть групповой проект в школе (3D FPS игра), и я программирую аудио, используя OpenAL и OGG Vorbis на C ++. Наш компилятор настроен так, чтобы предупреждать нас об определенных, но не используемых переменных, что, как оказалось, является проблемой для Vorbis. Когда я компилирую наше приложение, я получаю это:

[  8%] Building CXX object CMakeFiles/fps.dir/src/audio/Sound.cpp.o
/home/berzeger/FPS/FPS/trunk/game/src/audio/../../include/vorbis/vorbisfile.h:82:21: warning: ‘OV_CALLBACKS_NOCLOSE’ defined but not used [-Wunused-variable]
/home/berzeger/FPS/FPS/trunk/game/src/audio/../../include/vorbis/vorbisfile.h:89:21: warning: ‘OV_CALLBACKS_STREAMONLY’ defined but not used [-Wunused-variable]
/home/berzeger/FPS/FPS/trunk/game/src/audio/../../include/vorbis/vorbisfile.h:96:21: warning: ‘OV_CALLBACKS_STREAMONLY_NOCLOSE’ defined but not used [-Wunused-variable]
[  9%] Building CXX object CMakeFiles/fps.dir/src/audio/MenuAudioController.cpp.o
/home/berzeger/FPS/FPS/trunk/game/src/audio/../../include/vorbis/vorbisfile.h:75:21: warning: ‘OV_CALLBACKS_DEFAULT’ defined but not used [-Wunused-variable]
/home/berzeger/FPS/FPS/trunk/game/src/audio/../../include/vorbis/vorbisfile.h:82:21: warning: ‘OV_CALLBACKS_NOCLOSE’ defined but not used [-Wunused-variable]
/home/berzeger/FPS/FPS/trunk/game/src/audio/../../include/vorbis/vorbisfile.h:89:21: warning: ‘OV_CALLBACKS_STREAMONLY’ defined but not used [-Wunused-variable]
/home/berzeger/FPS/FPS/trunk/game/src/audio/../../include/vorbis/vorbisfile.h:96:21: warning: ‘OV_CALLBACKS_STREAMONLY_NOCLOSE’ defined but not used [-Wunused-variable]
[ 10%] Building CXX object CMakeFiles/fps.dir/src/audio/GameAudioController.cpp.o
In file included from /home/berzeger/FPS/FPS/trunk/game/src/audio/GameAudioController.cpp:1:0:
/home/berzeger/FPS/FPS/trunk/game/src/audio/../../include/vorbis/vorbisfile.h:75:21: warning: ‘OV_CALLBACKS_DEFAULT’ defined but not used [-Wunused-variable]
/home/berzeger/FPS/FPS/trunk/game/src/audio/../../include/vorbis/vorbisfile.h:82:21: warning: ‘OV_CALLBACKS_NOCLOSE’ defined but not used [-Wunused-variable]
/home/berzeger/FPS/FPS/trunk/game/src/audio/../../include/vorbis/vorbisfile.h:89:21: warning: ‘OV_CALLBACKS_STREAMONLY’ defined but not used [-Wunused-variable]
/home/berzeger/FPS/FPS/trunk/game/src/audio/../../include/vorbis/vorbisfile.h:96:21: warning: ‘OV_CALLBACKS_STREAMONLY_NOCLOSE’ defined but not used [-Wunused-variable]
[ 11%] Building CXX object CMakeFiles/fps.dir/src/audio/AudioController.cpp.o
/home/berzeger/FPS/FPS/trunk/game/src/audio/../../include/vorbis/vorbisfile.h:75:21: warning: ‘OV_CALLBACKS_DEFAULT’ defined but not used [-Wunused-variable]
/home/berzeger/FPS/FPS/trunk/game/src/audio/../../include/vorbis/vorbisfile.h:82:21: warning: ‘OV_CALLBACKS_NOCLOSE’ defined but not used [-Wunused-variable]
/home/berzeger/FPS/FPS/trunk/game/src/audio/../../include/vorbis/vorbisfile.h:89:21: warning: ‘OV_CALLBACKS_STREAMONLY’ defined but not used [-Wunused-variable]
/home/berzeger/FPS/FPS/trunk/game/src/audio/../../include/vorbis/vorbisfile.h:96:21: warning: ‘OV_CALLBACKS_STREAMONLY_NOCLOSE’ defined but not used [-Wunused-variable]

И так далее. Вы можете видеть, что это беспорядок, в котором важные вещи легко теряются.

Кажется, я не могу найти способ подавления неиспользуемых переменных Ворбиса. Я старался

#define OV_EXCLUDE_STATIC_CALLBACKS

но это отключает все определения vorbis, а это не то, что я хочу.

Может ли кто-нибудь помочь, пожалуйста? Заранее спасибо!

0

Решение

Лично я бы изменил свой сценарий сборки, чтобы отфильтровать эти конкретные предупреждения, но если вы не игра, чтобы сделать это …

Вы можете создать файл заголовка оболочки, включить файл оболочки вместо заголовков vorbis и использовать переменные проблемы в заголовке оболочки, чтобы предупреждения исчезли. Предполагая, что они являются целочисленными константами, должно быть что-то подобное.

//File: myvorbisfile.h
#include "vorbisfile.h"
// Dummy function in the anonymous namespace
// to suppress the unused variables
namespace
{
int hide_unused_variables()
{
return 0
+ OV_CALLBACKS_NOCLOSE
+ OV_CALLBACKS_DEFAULT
... Fill in the rest ...
}
}
2

Другие решения

Хорошо, я думаю, что я получил решение сейчас. У нас есть заголовочные файлы, скопированные в наш каталог приложений, поэтому я включил vorbisfile.h таким образом:

#include "../../include/vorbis/vorbisfile.h"

Когда я изменил эту самую строку для:

#include <vorbis/vorbisfile.h>

Предупреждения исчезли. Понятия не имею почему.

1

По вопросам рекламы [email protected]