未定义引用`SOIL_load_OGL_texture'?

3 c++ opengl soil

我不知道为什么这样说:

未定义的引用"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;
}
Run Code Online (Sandbox Code Playgroud)

我有

#include <SOIL.h>
Run Code Online (Sandbox Code Playgroud)

小智 8

事实证明,您必须在链接libopengl32之前链接libSOIL.因此,例如:将工作,但最后离开libSOIL将导致上述错误.
g++ -g source.cpp -lglu32 -lSOIL -lopengl32 -lfreeglut


Aus*_*ens 5

查看"Simple OpenGL Image Library/projects/makefile",然后创建一个名为"obj"的目录.现在从命令行运行"make",其中makefile是,然后是"make install".那应该安装库和头文件.现在尝试编译; 它对我有用.如果您收到有关libm的任何错误,只需在链接选项中添加"-lm"即可.