如何安装vtk入门篇

时间:2022-05-01 18:18:03
原来写过一些文字,觉得没有用。现在发现很多朋友学习vtk起步很难,自己又把它拿出来,改了改贴出来,同时也帖在自己的blog里。希望对新手有帮助:)

我这里使用的是vtk5.0,介绍如何安装在windows和linux上,都是我实践过的流程。

自己用vtk有两三年了,不精不专,但多少有些收获,一时兴起,写一些 vtk安装的文字。我选用的version是最新的稳定版本5.0,其实所有的内容都可以从vtk官方网站
http://vtk.org 上获得。

一、简要介绍

VTK(Visualization Toolkit)是一款用于二次开发的可视化工具包,在世界上同类产品中最有影响,基本上可以作为可视化领域的规范。

VTK的历史和现状:

1993 年12月,GE的Will Schroeder, Ken Martin两个人写了一本书: The Visualization Toolkit: An Object-Oriented Approach to 3D Graphics,VTK作为这本书的配套软件赠送。由于VTK的出色表现,人们对软件的关注程度远远超过了书,没有几年时间VTK就拥有了巨大的用户群。VTK现在是由kitware公司维护,以开源的形式开发,全世界所有的人都可以加入到开发者的行列。现在VTK的稳定版本是5.0,nightly 版本每天都会有更新。

VTK的特点:

Open Source。采用CVS版本控制

跨平台。支持Windows、Unix、Linux、Mac等多种平台

功能强大。适合几乎所有的可视化领域,从医学可视化到数据可视化,都能找到VTK的用户

支持多种语言开发。c语言当然不用说了,还包括脚本语言,如TCL、Python,也支持Java

具有强大的开发团队。包括多家开发单位,具有商业化的维护,具有来自全世界使用者的智力资源:)

二、安装前的准备

因为VTK是开源的,我们能从官方网站上得到它的源码,又因为它是跨平台的,我们就要对源码进行一些包装,才能被gcc vc6.0等不同编译器所接受。VTK使用的跨平台工具是CMake,它也是kitware公司的产品,可以从官方主页上获取。

很多人不清楚cmake到底是干什么的,我这里想解释解释。我们下载的vtk源码都是用c++编写的,是一个大的工程,无论在什么平台,用什么编译器,你都要告诉编译器该如何去编译这么一个庞然大物。工程文件是工程的一般组织形式,比如vc6.0下面是dsw文件,gcc下可以把makefile看成这么一个东西。这些工程体系告诉编译器该干什么,需要什么样的参数等,好,cmake就是这样一个用来生成适合不同编译器所需要的工程文件的工具。 cmake为什么知道那些编译参数呢,这不得不提CMakeList.txt这个文件,正是这个文件,提供了这些信息,还句话说,如果没有 CMakeList.txt,我们就不能使用cmake。有人又会问,如果不用cmake,可以编译vtk吗?那当然可以,比如在vc中,可以建立一个新的工程,把文件一个个往里面添加,编译选项也要自己加,在linux下,就自己写makefile,当然,这个方法几乎是无法实现的,就算实现,在今后的开发过程中还会遇到很多麻烦。所以,还是乖乖用cmake吧!

安装前,需要获得下面的文件,我这里以vtk5.0为例,在winxp+vc6.0和linux+gcc下实现

linxu:  

预安装gcc3.0

vtk-5.0.0.tar.gz   vtk的源码

vtkdata-5.0.0.tar.gz   vtk例子所需要的数据

cmake-2.4.3-Linux-i386.tar.gz   cmake程序,现在从官网上下载,是免编译的

windows:

预安装vc6.0

vtk-5.0.0.zip   vtk的源码

vtkdata-5.0.0.zip vtk例子所需要的数据

CMSetup243-win32.exe   cmake安装程序

上面不同系统下,vtk源码以及data其实是一样的,只不过使用了不同大包工具。另外,cmake版本的选择是根据vtk版本来定的,比如vtk5.0所需要的最低cmake版本好像是2.0,这里我们索性用更新的2.4。

三、windows下的vtk安装

1、安装cmake

这个应该很简单吧,windows下安装软件是傻瓜化的,运行CMSetup243-win32.exe,不停地点击下一步就行了

2、解压两个压缩包,建立所需文件夹

我不喜欢直接在源码里编译,而是另外建立一个bin文件夹。比如我把c:\vtk\作为我们的主目录,将vtk源码解压在vtk5.0这个文件夹中,把 data解压在vtkdata这个文件夹中,再建立一个空的文件夹取名为bin。注意,.\vtk5.0下面,应该就是一大堆文件夹和文件,.\ vtkdata下面应该也可以发现几个子文件夹。

3、运行cmake

首先,将源码和编译工作目录两个目录添好,在这个例子中,sourse code目录是c:\vtk\vtk5.0\,build 目录是c:\vtk\bin\。

再按configure按钮,cmake软件会让你选择需要使用的编译器,这里我们选vc6.0,然后,cmake就会对系统进行扫描了,停下来之后,我们就可以修改cmake选项了。

修改cmake选项。这个环节还真不好说,一般vtk的初学者只需要用默认设置就行了。我只提醒一些比较重要的选项:

build_examples: 就是询问是否编译vtk中的例子,如选则on,就要花时间把vtk的例子编译一遍,我一般不选

build_testing: test code 就是vtk开发者用来测试 vtk代码的一些测试代码,我们常常把它们当成学习vtk的例子,与build_examples类似,是否编译他们,看个人喜好。

build_shared_libs: 如果设置为off,就只会生成lib文件,用于开发肯定是够了。如果设置为on,将会多生成dll文件。他们的区别不是我这里说得清楚的,反正如果用静态库编程,应用程序可以独立运行,尺寸也比较大,如果用动态库编程,应用程序必须找到动态库才能运行,但尺寸可以做得比较小

cmake_install_prefix: 这个比较重要,就是以后要安装vtk的路径。有些人又要问,我编译完了不就可以用vtk了吗,为什么还要安装?对,不安装其实可以,安装的好处就是可以从 1G多的文件中提取出.h .lib .dll等精华,安装在指定目录下,并修改系统环境变量

vtk_data_root: 一般地,cmake可以自己找到vtkdata的路径,但如果没有,把c:\vtk\vtkdata\填上即可,告诉cmake,vtk需要的数据都在哪里

vtk_use_parallel: 对于想用vtk做并行计算的朋友,要把这个选上,对于只想学学vtk的,保持默认off

vtk_use_guisupport: 很多人把vtk安装好了,却无法运行vtk中与mfc混合编程的例子,提示错误都是缺少vtkmfc.lib,问题就出在这个选项,我们必须把它设置为 on,再次configure之后,会出现一个新的选项vtk_use_mfc,把它也设置为on就行了。

提示:在cmake中,有些选项是依赖于另一些选项的,比如vtk_use_guisupport和vtk_use_mfc,当我们禁用vtk_use_guisupport,vtk_use_mfc是看不到的。

修改完cmake选项以后,不停的按configure按钮,直到没有选项显示为红色,而且此时,ok按钮可用,点击ok按钮,就可以生成vc的工程文件了。

4、用vc6.0编译

用vc6.0打开bin目录下的vtk.dsw文件,因为文件很多,打开速度会有些慢。打开后,直接build。编译的用时和计算机性能,以及cmake中的一些选项有关,一般1个小时内可以完成。结果保存在.\bin\bin目录下。

编译也会出现不成功的时候,就要看编译器提示的错误类型来处理了!

5、安装

用vc6.0 打开bin目录下的install.dsp文件,不用理会提示的错误,直接build。编译结果就会安装在cmake_install_prefix设定的目录下。这个时候,把c:\vtk目录删除都行。当然,建议保留,也许以后还要更改cmake选项,再次修复编译呢。cmake会检查到改动,只处理改动过的地方,没有改动过的就不要重新编译了。

四、在linux下的vtk安装

linux下安装和windows下安装思路是一样的,我这里假设你已经基本熟悉linux的基本操作。

1、安装cmake

现在从官方网站上下载的cmake是免 编译的,我们可以直接在cmake源码的bin文件夹下找到ccmake这个可执行文件。就算没有编译,自己动动手,编译一下吧。另外,最好把ccmake命令加入到系统可搜索的范围内,这样就能直接运行ccmake命令了。

2、解压两个压缩包,建立所需文件夹

同window下安装,指定一个主目录,比如~/vtk/,建立三个文件夹,解包。

3、cmake

cd ~/vtk/bin/

ccmake ../vtk5.0

修改cmake的选项也参考前面windows下的vtk安装,因为linux下的cmake是文字界面,所以操作起来不直观,功能还是没有少的。

4、编译

cd ~/vtk/bin/

make

make命令可以看成是gcc编译器调用makefile文件,进行编译

5、安装

cd ~/vtk/bin/

sudo make install

这里之所以用sudo,是因为一些文件的读写需要root权限

五、总结

学习vtk最好的教材是vtk user guide和the visualization toolkit,最好的解决的难题的方法是通过vtk mail list 、qq、论坛、google等方式。

enjoy vtk!