参见英文答案 >
What is an undefined reference/unresolved external symbol error and how do I fix it? 32个
我需要在我的项目中使用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() );
}
我收到此错误:
Error 1 error LNK2019: unresolved external symbol __alloca referenced
in function
_stbi_zlib_decode_noheader_buffer working_dir\libSOIL.lib(stb_image_aug.o) ProjectNameError 2 error LNK2019: unresolved external symbol _sqrtf referenced in
function
_RGBE_to_RGBdivA2 working_dir\libSOIL.lib(image_helper.o) ProjectNameError 3 error LNK1120: 2 unresolved
externals working_dir\Debug\ProjectName.exe ProjectName
最佳答案 我遇到了同样的问题.我的解决方案是转到projects / VCX文件夹并自己编译解决方案,然后将生成的.lib文件复制到我的项目中.编译解决方案时,请确保选择正确的平台(X86 / X64).还要确保项目可以找到包含.lib文件的路径.