Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C VisualStudio2010中的土壤设置_C_Visual Studio_Opengl_Soil - Fatal编程技术网

C VisualStudio2010中的土壤设置

C VisualStudio2010中的土壤设置,c,visual-studio,opengl,soil,C,Visual Studio,Opengl,Soil,我无法正确使用Visual Studio 2010–我远非VS专家,但据我所知,只有以下步骤才能使环境正常工作: 属性>>C/C++>常规>>其他包含目录 将路径添加到土壤中。h 属性>>链接器>>常规>>其他库目录 添加libSOIL.a的路径 我还使用免费GLUT,GLUT文件的路径也在这里设置–我还将Dubugging>>环境路径设置为GLUT bin文件 使用“土壤加载”纹理时,会出现以下错误: 错误LNK2019:函数“void\uuu cdecl init(void)”中引用的未解析

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

属性>>C/C++>常规>>其他包含目录 将路径添加到土壤中。h

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

我还使用免费GLUT,GLUT文件的路径也在这里设置–我还将Dubugging>>环境路径设置为GLUT bin文件

使用“土壤加载”纹理时,会出现以下错误:

错误LNK2019:函数“void\uuu cdecl init(void)”中引用的未解析外部符号\u SOIL\u load\u OGL\u纹理(?init@@YAXXZ)

尝试将libSOIL.a重命名为libSOIL.lib和SOIL.lib,但无效。然后我构建了VC8项目,并按照这里的建议使用了该.lib 但这也不起作用

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

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头有一些文件需要拉入适当的
.lib
文件,这就是为什么只需设置
附加库目录就可以了。SOIL没有这些,所以你必须明确告诉链接器要使用哪个
.lib

可能是它的旧线程,但我还是会分享一些东西

  • 从下载zip文件并将其解压缩

  • 在VisualStudio项目包含路径(项目->属性->vc++目录->包含目录)中,将路径添加到Soil的“src”文件夹。 在->库目录的相同位置添加“lib”文件夹。 项目->属性->链接器->输入->其他依赖项->编辑以添加“SOIL.lib”

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

  • 现在按F5/运行以构建并运行。在执行此操作时要小心,如果您的项目使用的是x64调试版本,那么在构建解决方案之前,请在此处选择相同的版本

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

  • 至此,您已完成。它应该能用。

    谢谢-非常好用。我知道这是在问另一个问题,但你知道有什么好地方可以学习链接器和整个领域(很难在网络上找到一个从最基本的开始的好地方)吗。就像在大多数事情中一样,我会从你的好奇心出发,去你想去的地方:)我真的很喜欢这个API:P。谢谢你的帮助。如果你只是用它从图像中绘制纹理,你也可以用OpenCV阅读图像并绘制它。在这种情况下,您需要知道确切的图像数据类型。