我需要在我的项目中使用SOIL lib。如何将静态库(SOIL)链接到visual studio 2010中的项目?
我在我的源文件中包含SOIL.h和libSOIL.a(将其重命名为libSOIL.lib)。
我已经将头文件作为现有项目添加到头文件中,并将头文件包含在我需要的另一个头文件中。
我也试过了: 项目属性> Linker> Input> Additional Dependencies,然后在下拉菜单中点击“< 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());
}
我收到此错误:
Error 1 error LNK2019: unresolved external symbol __alloca referenced in function _stbi_zlib_decode_noheader_buffer working_dir\libSOIL.lib(stb_image_aug.o) ProjectName
Error 2 error LNK2019: unresolved external symbol _sqrtf referenced in function _RGBE_to_RGBdivA2 working_dir\libSOIL.lib(image_helper.o) ProjectName
Error 3 error LNK1120: 2 unresolved externals working_dir\Debug\ProjectName.exe ProjectName
也许这会帮助你:http://stackoverflow.com/questions/9629349/soil-not-linking-correctly – mfc
@mfc:我用新的错误代码更新了我的问题。这是否改变你的回复? – Chris
LNKxxxx错误表明错误来自链接器,代码编译正常,但链接器无法找到外部库中的所有二进制部分(代码和变量)。也可能是LIB文件的路径。上面链接中的文章表示,他使用“SOIL.lib”而不是“libSOIL.lib”并解决了问题。 – mfc