неопределенная ссылка на `SOIL_load_OGL_texture ‘?

Я не знаю, почему это продолжает говорить:

неопределенная ссылка на «SOIL_load_OGL_texture

Это код:

GLuint loadtex( const char* texname )
{
GLuint texture = SOIL_load_OGL_texture(
texname,
SOIL_LOAD_AUTO,
SOIL_CREATE_NEW_ID,
SOIL_FLAG_MIPMAPS | SOIL_FLAG_INVERT_Y | SOIL_FLAG_NTSC_SAFE_RGB | SOIL_FLAG_COMPRESS_TO_DXT
);
glBindTexture( GL_TEXTURE_2D, texture );
glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR );
glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR );
return texture;
}

я имею

#include <SOIL.h>

3

Решение

Оказывается, у вас есть ссылка libSOIL перед связыванием libopengl32. Так, например:
g++ -g source.cpp -lglu32 -lSOIL -lopengl32 -lfreeglut будет работать, но уходя libSOIL последний приведет к ошибке выше.

7

Другие решения

Посмотрите в «Простая библиотека изображений OpenGL / projects / makefile», затем создайте там каталог с именем «obj». Теперь запустите «make» из командной строки, где находится make-файл, а затем «make install». Это должно установить библиотеку и заголовочный файл. Попробуйте скомпилировать сейчас; это сработало для меня. Если вы получаете какие-либо ошибки в отношении libm, просто добавьте «-lm» к вашим параметрам компоновки.

5

неопределенная ссылка означает, что вам нужна ссылка на библиотеку почвы для вашего приложения. Есть разные способы сделать это, это зависит от используемой вами платформы и компилятора. В Linux вам нужно добавить что-то вроде -lsoil в флаги компоновщика.

1

Вы должны сделать ссылку на библиотеку SOIL:

g++ -o output your-source.cpp -lSOIL

ПОЧВА должна быть в кепках

0
По вопросам рекламы [email protected]