2015-11-13 6 views
0

Это очень странно или очень просто. Я использую библиотеку дьявола, и в очень простой программе я должен ее инициализировать следующим образом:undefined ссылка на `iluInit 'ТОЛЬКО

ilInit(); 
iluInit(); 

И вот в чем проблема. IlInit() хорошо, но iluInit() нет! Он не может найти ссылку.

Конечно, я включать заголовки:

#include <IL/il.h> 
#include <IL/ilu.h> 

И скомпилировать мой файл по:

g++ -std=gnu++11 -O3 myIL.cpp -lglfw3 -lGL -lGLEW -lIL -lGLU -lX11 -lXxf86vm -lpthread -lXrandr -lXi -o myIL 

(как правило, я хочу использовать Devil LIB для проекта OpenGL, но я не думаю, что это важно прямо сейчас).

У меня также есть все заголовки в /usr/include/IL и * .a, * .so и т. Д. Файлы в /usr/lib/x86_64-linux-gnu.

Кстати, это также здорово, если бы кто-нибудь мог объяснить мне, какая разница между IlInit(), iluInit() и ilutInit(). Я не могу найти простое объяснение.

+0

Три разные библиотеки, DevIL, ILU и ILUT. Кто это такой :(Не похоже, что вы связываете любой из них. –

+0

Разве это '-lIL' для связывания библиотеки (ies)? – paspy

+0

Возможный дубликат [Что такое неопределенная ссылка/неразрешенная внешняя ошибка символа и как его исправить?] (http://stackoverflow.com/questions/12573816/what-is-an-undefined-reference-unresolved-external-symbol-error-and-how-do-i -fix) – Walter

ответ

0

Я ничего не знаю о дьяволах, но я подозреваю, что вы забыли связать с соответствующей библиотекой - не так ли будет libILU.so, т. Е. Требуется опция компилятора/загрузчика -lILU?

+0

Да, я думал, что это будет очень просто .... То же самое, когда вы хотите использовать 'ilutInit()' вам нужно включить '#include ' И добавить '-lILUT'. много!! – paspy