Windows10 + VS2015 (Win SDK10)环境下的64位 VTK编译小结

之前在学习vtk过程中,感觉vtk的编译还是很简单的,基本上不会碰到什么棘手的错误。但是,当我在Win10+VS2015这个环境下配置时,却遇到了麻烦。经过一番折腾之后,终于将vtkbian编译成功了,这里做个小结,希望对大家有所帮助。

Step 1: 使用cmake3.3.0对vtk-6.2.0源码进行configure操作

选择VS2015 Win64选项作为编译器设置

可能出现的错误:HDF5对64位位长数据支持检测失败

解决方案:这个是因为在HDF5配置源码文件中缺少I64这个选项,添加I64选项即可解决

Step 2:使用cmake3.3.0对vtk-6.2.0源码进行generate操作,生成vs工程

这里我在默认配置的基础上勾选了BUILD_EXAMPLES和Module_vtkGUISupportMFC选项(因为我在开发的过程中会用到)

Step 3:以管理员方式打开VS2015,打开对应的sln文件

错误一:

19>D:\Softwares\vtk\VTK-6.2.0\Common\Core\vtkWin32ProcessOutputWindow.cxx(98): error C3688: 文本后缀"PRIdword"无效;未找到文文本运算符或文本运算符模板"operator """"PRIdword"

19>D:\Softwares\vtk\VTK-6.2.0\Common\Core\vtkWin32ProcessOutputWindow.cxx(99): error C2664: "int sprintf(char *const ,const char *const ,...)": 无法将参数 2 从"DWORD"转换为"const char *const "

19> D:\Softwares\vtk\VTK-6.2.0\Common\Core\vtkWin32ProcessOutputWindow.cxx(99): note: 从整型转换为指针类型要求 reinterpret_cast、C 样式转换或函数样式转换

解决方案:在D:\Softwares\vtk\VTK-6.2.0\Common\Core\vtkWin32ProcessOutputWindow.cxx第99行处进行如下修改:

//sprintf(exeName, "vtkWin32OWP_%"PRIdword"_%p_%u.exe",GetCurrentProcessId(), this, this->Count++);

sprintf(exeName, "vtkWin32OWP_%u_%p_%u.exe", GetCurrentProcessId(), this, this->Count++);

也就是将"PRIdword"替换为u。

错误二:

12>C:\Program Files (x86)\Windows Kits\10\Include\10.0.10150.0\ucrt\corecrt_search.h(191): error C2375: "lfind": 重定义;不同的链接

12> d:\softwares\vtk\vtk-6.2.0\thirdparty\tiff\vtktiff\tiffiop.h(57): note: 参见"lfind"的声明

解决方案:在d:\softwares\vtk\vtk-6.2.0\thirdparty\tiff\vtktiff\tiffiop.h中第57行处作如下修改:

在#ifdef HAVE_SEARCH_H 前面添加宏定义 #define HAVE_SEARCH_H。

错误三:

22>C:\Program Files (x86)\Windows Kits\10\Include\10.0.10150.0\ucrt\stdio.h(1925): warning C4005: "snprintf": 宏重定义

22> D:\Softwares\vtk-build\ThirdParty\libxml2\vtklibxml2\config.h(254): note: 参见"snprintf"的前一个定义

22>C:\Program Files (x86)\Windows Kits\10\Include\10.0.10150.0\ucrt\stdio.h(1927): fatal error C1189: #error: Macro definition of snprintf conflicts with Standard Library function declaration

解决方案:

在D:\Softwares\vtk-build\ThirdParty\libxml2\vtklibxml2\config.h中第252行处进行如下修改:

/* Win32 Std C name mangling work-around */

//#if defined(_MSC_VER)

//# define snprintf _snprintf

//#endif

即将此处的宏定义注释掉,因为在VS2015中已经对snprintf提供了官方支持

 

在分别对ALL_BUILD和INSTALL进行生成操作后,结果如下:

好了,vtk编译成功了,可以好好学习了。。。^_^

转载于:https://www.cnblogs.com/litengyao/p/5150147.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: vtk8.0.0编译好的库是一个用于可视化和图像处理的开源软件库。这个库是基于C++语言开发的,可以在各种操作系统和各种编译器上使用。在这种情况下,我们假设您是在Windows操作系统上使用Qt 5.9、Visual Studio 2015和PCL 1.8.1来编译和使用vtk8.0.0库。 首先,您需要确保您安装了Qt 5.9,这是一个跨平台的应用程序和UI开发框架。您可以从Qt的官方网站上下载并安装最新版本的Qt 5.9。 接下来,您需要安装Visual Studio 2015,这是一个强大的集成开发环境(IDE),用于编写和调试C++代码。您可以从微软官方网站上下载并安装Visual Studio 2015。 然后,您需要安装PCL 1.8.1,这是一个用于点云处理的开源库。您可以从PCL的官方网站上下载并安装最新版本的PCL 1.8.1。 最后,您需要将vtk8.0.0库与Qt 5.9、Visual Studio 2015和PCL 1.8.1集成在一起。首先,在Visual Studio 2015的项目设置中添加vtk8.0.0的头文件路径和库文件路径。然后,在您的项目代码中包含vtk的头文件,并链接vtk的库文件。 在编译和构建您的项目时,您需要确保选择正确的编译配置,以便使用Qt 5.9、Visual Studio 2015和PCL 1.8.1进行构建。 以上是使用vtk8.0.0库的一般步骤。根据您的具体项目需求,您可能需要进一步的配置和调整。希望这些信息对您有所帮助! ### 回答2: vtk8.0.0编译好的库适用于Qt5.9,VS2015,PCL1.8.1和VTK8.0版本。 首先,vtk8.0.0编译好的库是指已经经过编译,并可用于开发的库文件。该库文件中包含了VTK(Visualization Toolkit,可视化工具包)的功能和特性,可以用于构建和展示3D图像、可视化数据等。 Qt5.9是一个跨平台应用程序开发框架,可以用于创建图形界面和进行应用程序开发。vtk8.0.0编译好的库与Qt5.9兼容,因此可以在Qt应用程序中使用该库实现丰富的3D可视化功能。 VS2015是一个开发环境,适用于Windows操作系统。vtk8.0.0编译好的库是基于VS2015编译的,所以可以在该环境下使用该库进行开发。 PCL1.8.1是点云库(Point Cloud Library)的一个版本。vtk8.0.0编译好的库与PCL1.8.1兼容,可以使用该库来处理和可视化点云数据。 综上所述,vtk8.0.0编译好的库适用于Qt5.9,VS2015,PCL1.8.1和VTK8.0版本,可以在这些环境中使用vtk编译好的库开发和展示3D可视化功能。 ### 回答3: vtk8.0.0 编译好的库是基于以下工具和版本编译的:qt5.9、vs2015、pcl1.8.1以及vtk8.0。 vtk8.0.0是Visualization Toolkit的一个版本,它是一个开源的跨平台的3D图像处理和可视化库。它提供了丰富的功能和工具,用于处理和分析3D数据,并通过高质量的图形输出显示结果。 编译库使用的Qt版本为5.9。Qt是一个跨平台的应用程序开发框架,它提供了一套易于使用的工具和类库,用于开发图形用户界面应用程序。Qt 5.9的使用可以为vtk8.0.0库提供更强的功能和更好的用户体验。 在编译过程中,使用了VS2015作为集成开发环境(IDE)。VS2015是由微软开发的一个功能强大的集成开发环境,用于开发Windows平台上的应用程序。它提供了丰富的开发工具和调试功能,可以方便地进行代码编写和调试。 此外,编译还使用了pcl1.8.1。PCL(Point Cloud Library)是一个开源的用于点云处理的库,它提供了一系列的算法和工具,用于处理和分析点云数据。PCL 1.8.1提供了vtk8.0.0库所需的点云处理功能和支持。 综上所述,vtk8.0.0编译好的库是基于qt5.9、vs2015、pcl1.8.1和vtk8.0的。使用这些工具和库,可以轻松地进行3D图像处理和可视化开发,并获得高质量的结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值