4

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

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

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

我也试过:项目属性>链接器>输入>附加依赖项,然后在下拉菜单中单击“<编辑..>”并键入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:函数 _stbi_zlib_decode_noheader_buffer working_dir\libSOIL.lib(stb_image_aug.o) ProjectName 中引用的未解析的外部符号 __alloca

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

错误 3 error LNK1120: 2 unresolved externals working_dir\Debug\ProjectName.exe ProjectName

4

3 回答 3

2

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

于 2015-02-17T18:40:34.310 回答
0

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

于 2013-02-07T11:48:56.160 回答
0

在这些库使用之前

包括 windows.h

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

于 2014-06-05T19:12:43.020 回答