Visual Studio 2010中的SOIL设置

A M*_*ray 7 c opengl soil visual-studio

我不能让 土壤与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() );
}
Run Code Online (Sandbox Code Playgroud)

San*_*anD 8

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

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

  2. 在您的visual studio项目中包含路径(项目 - >属性 - > vc ++目录 - >包含目录),将路径添加到Soil的"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 Properties中指向).

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


gen*_*ult 5

听起来你实际上没有SOIL.lib列入你的Properties -> Linker -> Input -> Additional Dependencies清单.

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