如何将静态库(SOIL)链接到visual studio 2010中的项目?

时间:2013-02-07 11:05:15

标签: c++ visual-studio-2010 opengl static-libraries soil

我需要在我的项目中使用SOIL lib。

我在源文件总监中包含了SOIL.h和libSOIL.a(将其重命名为libSOIL.lib)。

我已将头文件作为现有项添加到标头中,并将头文件包含在我需要的另一个头文件中。

我也尝试过:  项目属性>链接器>输入>其他依赖项,然后在下拉菜单中点击“< Edit ..>”并键入libSOIL.lib。

但是我收到了这些错误:

查看下方(更新的错误)

我该怎么办?

编辑#1:

这就是我在做的事情:

#include "gl/glut.h"  
#include "SOIL.h"

我的源目录中有两个文件。

没有从SOIL编写的任何代码,构建成功。

使用此代码:

/* load an image file directly as a new OpenGL texture */
GLuint grass_texture = SOIL_load_OGL_texture
(
    "original.bmp",
    SOIL_LOAD_AUTO,
    SOIL_CREATE_NEW_ID,
    SOIL_FLAG_MIPMAPS | SOIL_FLAG_INVERT_Y | SOIL_FLAG_NTSC_SAFE_RGB | SOIL_FLAG_COMPRESS_TO_DXT
);
/* check for an error during the load process */
if( 0 == grass_texture )
{
    printf( "SOIL loading error: '%s'\n", SOIL_last_result() );
}

我收到此错误:

  

错误1错误LNK2019:未解析的外部符号__alloca引用   在功能上   _stbi_zlib_decode_noheader_buffer working_dir \ libSOIL.lib(stb_image_aug.o)ProjectName

     

错误2错误LNK2019:未解析的外部符号_sqrtf在中引用   功能   _RGBE_to_RGBdivA2 working_dir \ libSOIL.lib(image_helper.o)ProjectName

     

错误3错误LNK1120:2未解决   work_dir \ Debug \ ProjectName.exe ProjectName

3 个答案:

答案 0 :(得分:2)

我遇到了同样的问题。我的解决方案是转到projects / VCX文件夹并自己编译解决方案,然后将生成的.lib文件复制到我的项目中。编译解决方案时,请确保选择正确的平台(X86 / X64)。还要确保项目可以找到包含.lib文件的路径。

答案 1 :(得分:0)

首先尝试在SOIL.h之前包含OpenGL。

答案 2 :(得分:0)

在使用这些库之前

  

包括windows.h

因为您正在使用Windows。您的问题将得到解决。