В настоящее время я пытаюсь написать небольшую программу с использованием аудио-библиотек FMOD, но мне трудно понять, как их связать.C++ Library Linking FMOD
У меня есть небольшая программа, которая выглядит следующим образом
#include "/home/me/fmod_test/api/lowlevel/inc/fmod.h"
#include "/home/me/fmod_test/api/lowlevel/inc/fmod.hpp"
#include "/home/me/fmod_test/api/lowlevel/inc/fmod_errors.h"
#include <iostream>
using namespace std;
int main()
{
FMOD::System *system;
FMOD::Sound *sound1;
FMOD::System_Create(&system); // create an instance of the game engine
}
Но когда я пытаюсь скомпилировать с помощью
g++ -L/home/me/fmod_test/api/lowlevel/lib/x86_64 -lfmod -lfmodL test.cpp -o test
Я получаю сообщение об ошибке, как этот
In function `FMOD::System_Create(FMOD::System**)':
test.cpp:(.text._ZN4FMOD13System_CreateEPPNS_6SystemE[_ZN4FMOD13System_CreateEPPNS_6SystemE]+0x14): undefined reference to `FMOD_System_Create'
я включил скриншоты, чтобы показать, что эти библиотеки и заголовки действительно существуют в моей системе.
Интересно, если я прокомментирую вызов System_Create, то инициализация FMOD :: System и Sound все еще работает нормально.
ли я связь неправильно, я не могу понять, почему это не были бы работать (да и я на x86_64 архитектуры, за выход uname -a)
Я думаю, что вам не хватает libfmodex.so – JosEduSol
там не появляется, чтобы быть libfmodex.so библиотека где-нибудь в последних версиях FMOD, более старые версии появляются, чтобы иметь эту библиотеку, и я попытался составить более ранняя версия с использованием 'g ++ -I/home/me/fmod_test/fmodex/inc/-L/home/me/fmod_test/fmodex/lib/-lfmodex64 -lfmodexL64 test.cpp -o test', но все же имела ту же ошибку – suphug22