VTK的编译以及遇到的问题的解决方法
闲着没事,就又重新编译了一下VTK的开发包,遇到了一些问题,现在记录下来,供大家参考。
1.首先从vtk的官网上下载最新的vtk的包和data包,解压到同一个目录下,再在该目录下建立一个名为bin的空文件夹,下载cmake的最新包,有可安装版和绿色版。
2.运行cmake,配置source code和build the binaries如图所示:
3.运行Configure按钮,选择编译器,我用的是Visual Studio 2010,所以我选的是Visual Studio 10,然后出现上图的各种选项,这里将非默认的但是需要勾选的比较重要的选项说一下。
在vtk这个选项卡下面包含的项目:
VTK_USE_BOOST:这个Boost是一个C++的库,很好的一个C++语言新特性的包含库,用过Boost的可以将这个选项勾选上,但是再次 Configure后需要配置Boost的安装目录,所以,保证你的电脑中安装有Boost
VTK_USE_GUISUPPORT:这个选上之后才能使用GUI进行VTK的编程,选上之后会有两个选项:VTK_USE_MFC和VTK_USE_QT,就是 可以用MFC和Qt进行编程,我这里用Qt,所以只选了Qt,用MFC的可以将MFC勾选上。
build选项卡下面有可以编译的东西,你想编译什么勾选上就可以了。
4.再次运行Configure,运行成功之后,页面上的红色将消失,若还有红色,则看看红色选项卡上还需要选中什么,直接选中,然后再运行Configure。
5.Configure成功之后,运行Generate,Generate一般都会成功
6.到VTK的路径中的bin文件夹下,找到VTK.sln,打开,选择RELEASE编译,编译第一次一般不会太成功,编译过程中,我遇到了一些问题,并将问题解决了,下面列出我遇到的问题:
问题1:fatal error C1189: #error : This file requires _WIN32_WINNT to be #defined at least to 0x0403. Value 0x0501 or higher is recommended.
这个问题只需要继续编译就可以通过了,在编译之后,出现问题,再选择运行“生成解决方案”即可。
问题2:是关于Qt中的一个inline函数的问题,我用的是Qt4.7,怎么编译Qt,在第一篇文章中有介绍,这里出现了这样一个错误:error C2039: “toStdString”: 不是“QString”的成员
这个问题是由于Qt的文件中用了QString的一个inline函数造成的,我将所有的toStdString()改为了.toLocal8Bit().constData();然后选择“生成解决方案”,就编译成功了,其实QString的这个函数在其他地方是可以用的,在这里不知道怎么不能用了
问题3:error MSB6006: “cmd.exe”已退出,代码为 9009。
这个问题出现在生成文档的一个工程中,并不影响大局的使用,我没有找到相关的解法
