Я не знаю, почему это продолжает говорить:
неопределенная ссылка на «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>
Оказывается, у вас есть ссылка libSOIL перед связыванием libopengl32. Так, например: g++ -g source.cpp -lglu32 -lSOIL -lopengl32 -lfreeglut
будет работать, но уходя libSOIL последний приведет к ошибке выше.
Посмотрите в «Простая библиотека изображений OpenGL / projects / makefile», затем создайте там каталог с именем «obj». Теперь запустите «make» из командной строки, где находится make-файл, а затем «make install». Это должно установить библиотеку и заголовочный файл. Попробуйте скомпилировать сейчас; это сработало для меня. Если вы получаете какие-либо ошибки в отношении libm, просто добавьте «-lm» к вашим параметрам компоновки.
неопределенная ссылка означает, что вам нужна ссылка на библиотеку почвы для вашего приложения. Есть разные способы сделать это, это зависит от используемой вами платформы и компилятора. В Linux вам нужно добавить что-то вроде -lsoil в флаги компоновщика.
Вы должны сделать ссылку на библиотеку SOIL:
g++ -o output your-source.cpp -lSOIL
ПОЧВА должна быть в кепках