Осмотрев различные звуковые библиотеки API, я решил пока использовать FMOD.
Проблема в том, что всякий раз, когда я пытаюсь скомпилировать один из примеров кода, я получаю следующие ошибки:
obj\Release\main.o:main.cpp|| undefined reference to `FMOD::System::getVersion(unsigned int*)@8'|
obj\Release\main.o:main.cpp|| undefined reference to `FMOD::System::init(int, unsigned int, void*)@16'|
obj\Release\main.o:main.cpp|| undefined reference to `FMOD::System::createSound(char const*, unsigned int, FMOD_CREATESOUNDEXINFO*, FMOD::Sound**)@20'|
obj\Release\main.o:main.cpp|| undefined reference to `FMOD::Sound::setMode(unsigned int)@8'|
Пример кода, который я использую, таков:
#include <D:\Games\FMOD Programmers API Win32\api\inc\fmod.hpp>
#include <D:\Games\FMOD Programmers API Win32\api\inc\fmod_errors.h>
#include <sstream>
#include <windows.h> // for PlaySound()
#include <time.h>
#include <mmsystem.h>
using namespace std;
int main(int argc, char* argv[])
{
FMOD::System *system;
FMOD::Sound *sound1, *sound2, *sound3;
FMOD::Channel *channel = 0;
FMOD_RESULT result;
int key;
unsigned int version;
/*
Create a System object and initialize.
*/
result = FMOD::System_Create(&system);
result = system->getVersion(&version);
result = system->init(32, FMOD_INIT_NORMAL, 0);
result = system->createSound("../media/drumloop.wav", FMOD_HARDWARE, 0, &sound1);
result = sound1->setMode(FMOD_LOOP_OFF); /* drumloop.wav has embedded loop points which automatically makes looping turn on, */
/* so turn it off here. We could have also just put FMOD_LOOP_OFF in the above CreateSound call. */
// Code continues into other bits that work...
Я использую последнюю версию FMOD и использую IDE Code :: Blocks (версия 10.05), скомпилятор GNU GCC.Проект относится к типу «Консольное приложение».Файл fmodex.dll находится в папке моего проекта.Я использую 32-разрядную версию Windows XP с пакетом обновления 3 (SP3).
Я подключился к библиотеке libfmodex.a
и попытался также подключиться к другим библиотекам, которые есть там, но это не решает проблему.1013 * Поэтому мой вопрос: что мне нужно сделать, чтобы эти ошибки не возникали?Как, например, когда я сталкивался с подобными ошибками «неопределенная ссылка на x» перед использованием других библиотек.Я просто забыл ссылаться на них в Code :: Blocks, и как только я это сделаю, они сработают.
Скажите, если вам нужна дополнительная информация о коде и т. Д.