Visual studio 2012 设置visual studio 2012的VIP库
我正在尝试visual studio 2012的libvips,首先是Visual studio 2012 设置visual studio 2012的VIP库,visual-studio-2012,include-path,vips,Visual Studio 2012,Include Path,Vips,我正在尝试visual studio 2012的libvips,首先是 #包括 #包括 int main(int argc,char)⋆⋆argv) { 如果(argc!=3) { 但是glib objects.h调用另一个glibconfig.h,在Include文件夹和子文件夹中找不到该glibconfig.h 有人成功地让libvips与VS一起工作吗?如果我遗漏了什么,你能给我一些建议吗。我是libvips的维护者。很抱歉,由于各种原因,在VS中使用预构建的libvips二进制
#包括
#包括
int
main(int argc,char)⋆⋆argv)
{
如果(argc!=3)
{
但是glib objects.h调用另一个glibconfig.h,在Include文件夹和子文件夹中找不到该glibconfig.h
有人成功地让libvips与VS一起工作吗?如果我遗漏了什么,你能给我一些建议吗。我是libvips的维护者。很抱歉,由于各种原因,在VS中使用预构建的libvips二进制文件非常困难(见下文)。我想你的选择是使用,从linux交叉编译(我就是这么做的),或者自己使用VS从源代码中重建libvips(对于有经验的开发人员来说,可能需要一周的时间)
网站上的libvips.dll是使用mingw从linux交叉编译而成的。它是为带有pkg config的linux风格构建系统而设置的,因此在VS中有很多编译器标志,并且它是根据msvcrt.dll(Windows C运行时)而不是msvcrtXX.dll(VS运行时)构建的,因此您将有无休止的恼人兼容性除非您还根据Windows运行时进行构建,否则可能会出现问题
不幸的是,VS不再支持针对Windows运行时进行构建。他们有一个内部工具支持此模式,但它不是公开的。我在某个地方读到,你可以劝说DDK编译器这样做,但它也不受支持
是一个有趣的项目(部分由Microsoft支持)这是为了减少在Windows上构建软件的痛苦,但它仍处于测试阶段。你可能会问他们是否为VS打包了一个libvips,或者正在考虑制作一个。我是libvips的维护者。很抱歉,由于各种原因,在VS中使用预构建的libvips二进制文件非常困难(见下文)。我认为您的选择是使用,从linux交叉编译(我就是这么做的),或者使用VS从源代码重新构建libvips(对于有经验的开发人员来说,可能需要一周的工作?)
网站上的libvips.dll是使用mingw从linux交叉编译而成的。它是为带有pkg config的linux风格构建系统而设置的,因此在VS中有很多编译器标志,并且它是根据msvcrt.dll(Windows C运行时)而不是msvcrtXX.dll(VS运行时)构建的,因此您将有无休止的恼人兼容性除非您还根据Windows运行时进行构建,否则可能会出现问题
不幸的是,VS不再支持针对Windows运行时进行构建。他们有一个内部工具支持此模式,但它不是公开的。我在某个地方读到,你可以劝说DDK编译器这样做,但它也不受支持
是一个有趣的项目(部分由Microsoft支持)这是为了减少在Windows上构建软件的痛苦,但它仍处于测试阶段。你可以问他们是否为VS打包了一个libvips,或者正在考虑制作一个。谢谢你的回答。我正在处理大型多光谱图像,我听说libvips在这方面非常有效。我不擅长在Linux下构建,所以我想我会处理一小部分图像,然后将方法传递给可以在Linux中使用libvips处理整个图像的人。libvips最初是为处理大型多光谱图像而编写的。在Linux上使用它很简单:它包含在所有主要发行版中,您可以使用ruby编写脚本。谢谢r您的回答。我正在处理大型多光谱图像,我听说libvips在这方面非常有效。我不擅长在Linux下构建,因此我想我会处理较小的图像,然后将方法传递给可以在Linux中使用libvips处理整个图像的人。libvips最初是为处理而编写的在linux上使用很简单:它包含在所有主要发行版中,您可以用ruby编写脚本。
#include <iostream>
#include <vips/vips>
int
main (int argc, char ⋆⋆argv)
{
if (argc != 3)
{
std::cerr << "usage: " << argv[0] << " infile outfile\n";
return (1);
}
try
{
vips::VImage fred (argv[1]);
fred.invert ().write (argv[2]);
}
catch (vips::VError e)
{
e.perror (argv[0]);
}
return (0);
}