Недавно я загрузил звуковую библиотеку Irrklang для использования с моими программами на C++. Чтобы проверить это, я установил и связал библиотеку в настройках компилятора Code :: Block и в настройках сборки проектов. Однако всякий раз, когда я пытаюсь построить & запустить следующий код:C++ Ошибка звука IrrKlang-CreateIrrKlangDevice() приводит к неопределенному refrence к (действительно длинному refrence)
#include <irrKlang.h>
using namespace std;
using namespace irrklang;
int main(){
ISoundEngine* engine = createIrrKlangDevice();
}
«Построить сообщения» Вкладка выдает следующее сообщение об ошибке:
|Line 5|undefined reference to`_imp___ZN8irrklang20createIrrKlangDeviceENS_21E_SOUND_OUTPUT_DRIVEREiPKcS2_'|
А вот ошибку на вкладке «Build Log» :
64bit-1.5.0\lib\Winx64-visualStudio\irrKlang.lib"
obj\Debug\main.o: In function `main':
C:/Users/Johnny/Desktop/Python/Learner/main.cpp:5: undefined reference to _imp___ZN8irrklang20createIrrKlangDeviceENS_21E_SOUND_OUTPUT_DRIVEREiPKcS2_'
collect2.exe: error: ld returned 1 exit status
Process terminated with status 1 (0 minute(s), 0 second(s))
1 error(s), 0 warning(s) (0 minute(s), 0 second(s))
Должен вам сказать, это моя первая загрузка и использование библиотеки с C++. Я использовал этот учебник: http://www.learncpp.com/cpp-tutorial/a3-using-libraries-with-codeblocks/
Я искал эту ошибку в Google, и, хотя люди с одинаковой проблемой приходят, все решения, которые они получили, слишком расплывчаты или их отчет об ошибках был вызван другой ошибкой ,
Вот некоторые страницы, которые я просмотрел:
http://www.ambiera.com/forum.php?t=939
Я просмотрел больше, чем просто этот, в основном, на том же форуме, но я могу отправить только максимум двух звеньев, и я решил, что было более важно, чтобы вы могли рассказать, как я связал библиотеку.
Похоже, вы не добавили 'import library' в свой проект. Компонент ищет эту функцию, которую вы вызываете в 'main', но не можете ее найти. Префикс '_imp' указывает, что функция (заглушка) находится в библиотеке импорта (которую вы должны были получить и добавить в свой проект). – PaulMcKenzie
'import library'? Что это? @PaulMcKenzie –
Ваша программа вызывает функцию. Где находится эта функция? Об этом жалуется компоновщик - он не может его найти. Эта функция находится в файле библиотеки импорта (.LIB), который должен был поставляться с вашей звуковой библиотекой. Затем вам нужно добавить этот файл в свой проект, чтобы компоновщик знал, где найти эту функцию. И BTW, вам нужно познакомиться с импортом (и статическими библиотеками), если вы собираетесь использовать сторонние DLL и модули. На самом деле ссылка на ваш URL указывает на это: '5) Сообщите компоновщику, какие статические или импортировать файлы библиотеки для ссылки.« – PaulMcKenzie