Visual studio 2012 设置visual studio 2012的VIP库

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二进制

我正在尝试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二进制文件非常困难(见下文)。我想你的选择是使用,从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);  
}