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

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

<分区>

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

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

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

我也尝试过: Project properties > 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

最佳答案

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

关于c++ - 如何将静态库(SOIL)链接到 visual studio 2010 中的项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14749613/

相关文章:

c++ - 如何在 POCO::Net::HTTPResponse 对象中获取内容编码?

c++ - curl_easy_perform() 失败 : Couldn't connect to server

c++ - (C++17; Boost) CMake 找不到请求的 Boost 库

c++ - 模棱两可的部分模板特化

c++ - 如何将 vector 拆分为 n 个 "almost equal"部分

c++ - GLFW 无法创建 4.3 上下文

c# - 在单元测试期间使用资源

c++ - 为什么在 C++ 中获得第一个 chace 异常

C# OpenGL 绘制拉伸(stretch)的二维纹理(不调整大小!)

OpenGL - glDrawBuffers 设置的状态存储在哪里?