Visual Studio 2010中的SOIL设置

我无法使用Visual Studio 2010正常工作 – 我远不是VS的专家,但据我所知,只有以下步骤才能使环境正常工作:

属性>> C / C ++>常规>>其他包含目录添加到SOIL.h的路径中

属性>>链接器>>常规>>附加库目录添加到libSOIL.a的路径

我也使用免费的GLUT,并且这里也设置了glut文件的路径 – 我还将Dubugging >> Environment Path设置为GLUT bin文件。

当我使用SOIL_load_OGL_texture时,我收到以下错误:

错误LNK2019:函数“void __cdecl init(void)”中引用了未解析的外部符号_SOIL_load_OGL_texture(?init @@ YAXXZ)

尝试将libSOIL.a重命名为libSOIL.lib和SOIL.lib,但它不起作用。 然后我构建了VC8项目并使用了.lib,如此处所示, SOIL没有正确链接,但也没有用。

我在他们的主页上使用示例代码

GLuint tex_2d; tex_2d = SOIL_load_OGL_texture ( " C:\\Sunset.png", 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 == tex_2d ) { printf( "SOIL loading error: '%s'\n", SOIL_last_result() ); } 

听起来你实际上没有将SOIL.lib放在你的Properties -> Linker -> Input -> Additional Dependencies列表中。

FreeGLUT标头有一些特定于Win32的#pragma s来引入正确的.lib文件,这就是为什么只设置Additional Library Directories 。 SOIL没有那些,所以你必须专门告诉链接器使用哪个.lib

可能是它的旧线程,我仍然会分享一些东西。

  1. 从http://www.lonesock.net/soil.html下载zip并解压缩。

  2. 在您的visual studio项目中包含路径(项目 – >属性 – > vc ++目录 – >包含目录)添加到“src”文件夹的路径。 同一个地方 – >库目录添加“lib”文件夹。 project – > properties – > Linker – > Input – > Additional Dependencies – > Edit to add“SOIL.lib”

  3. 此步骤很重要,因为人们倾向于将.a文件重命名为.lib。 不要那样做。 而是进入“项目”文件夹,选择VC *(例如VC8 for VS2012) – >打开visual studio文件 – >它将使用您的visual studio打开 – >单击确定 – >单击确定。 您的解决方案将准备就绪。

现在按F5 / Run来构建和运行。 在执行此操作时要小心,以防您的项目使用x64调试版本,然后在此处选择相同的内容,然后再构建解决方案。

  1. 将在VC *文件夹中创建文件夹/文件。 进入Debug / x64(取决于您的项目),将SOIL.lib文件复制到原始“lib”文件夹(您在步骤2中的Visual Studio属性中指向)。

此时,你已经完成了。 它应该工作。