Хотелось бы спросить «Какие библиотеки мне нужно связать», но это довольно специфично (интеграция с движком wwise), поэтому мне нужна помощь в его разработке самостоятельно. Проблема возникает, когда я пытаюсь создать переменную типа, определенного в файле заголовка (компилятор не находит заголовок без проблем). Я получаю 22 ошибки компоновщика, но я не понимаю прочитанное, может ли кто-нибудь провести меня через него и сказать точно, какой символ отсутствует, чтобы я мог выяснить, какие библиотеки мне не хватает? и может ли это быть что-то кроме библиотеки, не связывающей? Wwise поставляется с демонстрационным проектом, который компилируется, но не связывается с большим количеством библиотек, чем я.
Вот 5 ошибок. Я использую визуальную студию.
1>main.obj : error LNK2019: unresolved external symbol "public: enum AKRESULT __thiscall CAkDefaultIOHookBlocking::Init(struct AkDeviceSettings const &,bool)" (?Init@CAkDefaultIOHookBlocking@@QAE?AW4AKRESULT@@ABUAkDeviceSettings@@_N@Z) referenced in function "bool __cdecl InitSoundEngine(void)" (?InitSoundEngine@@YA_NXZ)
1>main.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall CAkDefaultIOHookBlocking::GetDeviceDesc(struct AkDeviceDesc &)" (?GetDeviceDesc@CAkDefaultIOHookBlocking@@UAEXAAUAkDeviceDesc@@@Z)
1>main.obj : error LNK2001: unresolved external symbol "public: virtual unsigned long __thiscall CAkDefaultIOHookBlocking::GetDeviceData(void)" (?GetDeviceData@CAkDefaultIOHookBlocking@@UAEKXZ)
1>main.obj : error LNK2001: unresolved external symbol "public: virtual enum AKRESULT __thiscall CAkDefaultIOHookBlocking::Read(struct AkFileDesc &,struct AkIoHeuristics const &,void *,struct AkIOTransferInfo &)" (?Read@CAkDefaultIOHookBlocking@@UAE?AW4AKRESULT@@AAUAkFileDesc@@ABUAkIoHeuristics@@PAXAAUAkIOTransferInfo@@@Z)
1>main.obj : error LNK2001: unresolved external symbol "public: virtual enum AKRESULT __thiscall CAkDefaultIOHookBlocking::Write(struct AkFileDesc &,struct AkIoHeuristics const &,void *,struct AkIOTransferInfo &)" (?Write@CAkDefaultIOHookBlocking@@UAE?AW4AKRESULT@@AAUAkFileDesc@@ABUAkIoHeuristics@@PAXAAUAkIOTransferInfo@@@Z)
Символы:
enum AKRESULT CAkDefaultIOHookBlocking::Init(struct AkDeviceSettings const &,bool)
virtual void CAkDefaultIOHookBlocking::GetDeviceDesc(struct AkDeviceDesc &)
virtual unsigned long CAkDefaultIOHookBlocking::GetDeviceData(void)
virtual enum AKRESULT CAkDefaultIOHookBlocking::Read(struct AkFileDesc &,struct AkIoHeuristics const &,void *,struct AkIOTransferInfo &)
virtual enum AKRESULT CAkDefaultIOHookBlocking::Write(struct AkFileDesc &,struct AkIoHeuristics const &,void *,struct AkIOTransferInfo &)
Насколько я могу судить, у вас есть только заголовок, который объявляет класс CAkDefaultIOHookBlocking
Это означает, что вы пытаетесь использовать любой из вышеперечисленных символов, который вам понадобится связать с библиотекой.
Wwise поставляется с демонстрационным проектом, который компилируется, но не связывается с большим количеством библиотек, чем я.
Либо символы не используются, либо исходные файлы, которые определяют эти символы, скомпилированы в этом проекте — http://gmwwise.googlecode.com/svn-history/r2/trunk/GMWwise/wwise/AkDefaultIOHookBlocking.cpp
У вас есть файл AkDefaultIOHookBlocking.cpp
это не было добавлено в проект, который вы строите.