【问题标题】:How to link static library (of SOIL) to a project in visual studio 2010? [duplicate]如何将静态库(SOIL)链接到 Visual Studio 2010 中的项目? [复制]
【发布时间】:2013-02-07 11:05:14
【问题描述】:

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

我在源文件目录中包含了 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:未解析的外部符号 __alloca 引用 在功能上 _stbi_zlib_decode_noheader_buffer working_dir\libSOIL.lib(stb_image_aug.o) 项目名称

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

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

【问题讨论】:

  • @mfc:我已经用新的错误代码更新了我的问题。这会改变你的回复吗?
  • LNKxxxx 错误表明错误来自链接器,代码编译正常,但链接器无法从外部库中找到所有二进制部分(代码和变量)。也可能是 LIB 文件的路径。上面链接中的文章说他使用“SOIL.lib”而不是“libSOIL.lib”,问题就解决了。
  • 我遇到了同样的问题,但是 SOIL.lib/libsoil.lib 什么也没做。

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


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 我用一些额外的信息编辑了我的问题。我正在按照你说的做,但是当我使用来自土壤的代码时没有运气。
    【解决方案3】:

    在这些库使用之前

    包括 windows.h

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

    【讨论】:

    • 我不会推荐这个。仅仅因为有人(被认为是)在 Windows 上工作(尽管从未声明过,并且只能通过使用 Visual Studio 来推断),这并不意味着他们的项目不会是平台非特定的。在那里拍打 Windows 标头并不能解决问题。事实上,它更有可能产生更多问题(仅凭无数的编译警告就变得不值得!)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-11
    • 1970-01-01
    • 2011-10-29
    相关资源
    最近更新 更多