C VisualStudio2010中的土壤设置
我无法正确使用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 但这也不起作用 我正在使用他们主页上的示例代码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)”中引用的未解析
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阅读图像并绘制它。在这种情况下,您需要知道确切的图像数据类型。