006-《VTK用户指南》--第一部分-VTK简介--第2章-安装(2)在Windows系统上安装VTK

在Windows XP,Vista或更高版本上安装VTK

在Windows下,有两种类型的VTK安装方式。

  1. 直接安装二进制库和可执行文件。可以通过运行预编译的可执行文件(vtk.exe),进行基于Tcl脚本语言的开发工作。
  2. 基于完整的源代码安装。
    需要您编译VTK源代码(用于生成C++库)
    和适用于解释型语言的VTK封装代码(用于生成基于Java,Tcl和Python等脚本语言进行开发所需要的VTK库文件和可执行文件)。

在两种类型的安装中,二进制安装要容易得多。但源代码安装具有可以查看、调试和修改VTK代码的优势。如果您是VTK类开发人员,这些优势可能正是您需要的。需要说明的是,即使您选择以二进制方式安装VTK,您仍然可以通过一系列方法扩展VTK:

  1. 创建您自己的类(参考“写一个VTK类:概述”一节),
  2. 使用运行时可编程过滤器(请参阅“可编程过滤器”一节),
  3. 以及在运行时替换VTK类为您自己的类版本(请参阅“对象工厂”一节)。

TODO:这里需要后续再仔细研究一下。
从后续的二进制安装的内容来看,二进制安装只适用于基于解释型语言开发(如Tcl),并不适用于基于C++开发。 那还怎么“创建自己的VTK类”呢?

二进制安装

要以二进制方式安装vtk.exe(它是适用于Tcl/Tk语言环境的VTK 可执行文件),可从vtk.org的下载页面上下载Windows平台的VTK二进制安装程序。运行安装程序VTK-x.x.x.x-win32.exe,将会启动安装向导(见图2-1)。安装程序的文件名中的“ x.x.x”表示用于构建它的VTK的版本号。您也可以下载VTK源代码树和VTKData目录的相应*.zip文件。当我们发布新版本的VTK时,我们会在vtk.org网站的下载页面提供它们的下载链接。请关注VTK用户邮件列表上的新版本发布公告。
图2–1 Windows的VTK安装程序程序
图2–1 Windows的VTK安装程序程序

注:需要说明的是这种形如VTK-x.x.x.x-win32.exe的安装包,
安装的是Tcl/Tk所需的vtk.exe和配套的库及Tcl脚本, 而不是适用于C++开发的SDK。

https://vtk.org/files/release/网站上可以下载到VTK的历史版本。
从历史版本的演示过程看,对于解释型语言的支持情况演进如下:

  1. 极早期的版本(2.x, 3.x,4.x)包含有C++SDK的安装包。
  2. 稍晚一点的版本(2.x,3.x,4.x,5.x)对Tcl/Tk的支持较好。
  3. 后来(从6.x版本开始)逐渐转向Python。

VTK源码树包含许多*.tcl脚本,您可以用它们来了解各种VTK类的是如何工作的。下载vtk-x.x.x.x.zip和vtkdata-x.x.x.x.zip文件并解压。在VTK文件夹中,您会找到一个名为“Examples”文件夹。在Examples文件夹下,有诸如GUI,MangledMesa和Parallel之类文件夹。这些文件夹中都包含一个名为Tcl的子文件夹,其中包含各种Tcl示例。

除了Examples文件夹外,还有一些库文件夹,如:Graphics,Imaging和Filtering。这些文件夹中都包含一个实现VTK回归测试的Testing/Tcl子文件夹。尝试通过双击TCL文件来运行任何示例。

当您第一次双击Tcl文件(.tcl扩展名)时,可能会出现一个对话框,询问您该使用什么程序来打开该文件。
这意味着您需要在Tcl文件和VTK之间创建关联以运行它们。
如果发生这种情况,请单击对话框上的“从列表中选择程序”按钮,然后单击“确定”。将出现一个名为为“打开”的新对话框。
单击此对话框上的“浏览”按钮以显示文件浏览器。
在文件浏览器中,转到安装VTK的目录。
通常,这是C:\Program Files\VTK 5.4或C:\Program Files\Document and Settings\My Documents\VTK 5.4。
在那里,您应该看到一个bin文件夹,该文件夹又包含一个名为vtk.exe的可执行程序。双击vtk(或vtk.exe)。
检查“始终使用所选程序打开此文件”的复选框在“打开”对话框上选中状态,然后点击“确定”按钮。
然后您的示例应该运行。将来,对任何TCL脚本的双击都会自动开始执行vtk。

另外,如果Tcl文件已经与既有的可执行文件(通过安装Tcl/ Tk二进制文件)关联,
则在双击Tck文件上时,您会看到类似于以下的错误消息:
在执行"package require vtk"时找不到软件包VTK。
如果您收到此错误消息,请右键单击Tcl文件,然后从显示的弹出菜单中选择“打开…”。将出现“打开”对话框。
按照上一段中的其余指令将Tcl文件与vtk.exe可执行文件相关联。
这就完成了Windows平台上的VTK的二进制安装过程。
在第3章中,我们将详细介绍如何编写自己的C++、Tcl、Java和Python应用程序。

注:现在已经没有针对Tcl语言的二进制安装包可用了。
官网现在提供的是适用于Python语言的Python脚本库,可以通过pip install 将VTK脚本库安装到Python环境中。
TODO:会后会提供在各平台上搭建基于Python+VTK的开发环境的详细说明。

源代码安装

如果要开发C++应用程序并扩展VTK,您必须要进行源代码安装。
这是更具挑战性的,并且在编译VTK时可能会持续占用您的机器几个小时的时间。
首先,您需要确保您的计算机能够构建VTK源代码版本。
您必须使用Windows XP,Vista或更高的Windows版本。
您还需要在计算机上安装C ++编译器。
本指南中的我们推荐使用Microsoft Visual Studio 2005或更高版本,它们与VTK配合较好。
我们还支持Borland C++编译器、Cygwin或MinGW环境中的GCC、
NMake、Microsoft Visual C++免费版和Microsoft Visual C++ 2005。
如果您还没有安装任何C++编译器,那么必须先安装一个C++编译器才能进行后续的源代码编译工作。

您需要确定您将使用什么样的开发环境进行VTK应用的开发工作。
如果您打算基于Java编程语言进行开发,则必须下载并安装Java JDK,
可从Sun Microsystems获取,网址为http://www.java.sun.com。
如果您打算使用Tcl/Tk进行开发,并且不使用Microsoft Visual C++,
那么您将需要从http://www.tcl.tk下载源码,并从源码构建和安装Tcl/Tk的版本。
或者,可以从http://www.activestate.com/products/activetcl下载并安装预先编译好的Tcl/Tk二进制版本。
(注意:Tcl/Tk8.4版本可以与VTK5.4.0版本配合使用。)

安装CMAKE。

要编译VTK,您首先需要安装CMAKE。可从http://www.cmake.org获得CMAKE的安装程序。

运行CMake。

安装了C ++编译器、CMake以及必须的其他软件包(例如Tcl,Java和Python)后,您可以随时运行CMake。
在开始菜单中的“程序->CMake->CMakeSetup”下应该有一个CMake条目。
图2–2 CMake用于为不同的编译器和操作系统生成项目文件、Makefile文件或工作空间文件。 CMake是跨平台的
图2–2 CMake的用户界面

CMake可用于为不同的编译器和操作系统生成项目文件、Makefile文件或工作空间文件。
CMake是跨平台的。

CMakeSetup.exe(图2-2)是一个简单的带UI的应用程序,可让您根据您的开发平台定制合适的VTK选项。
首先,您必须告诉CMakeSetup程序您的VTK的源代码树在哪里,以及构建生成的VTK二进制文件的要放在哪里。
您可以使用浏览按钮选择路径,也可以手动输入路径。
选择源代码路径和二进制文件存放目录后,您应该单击“配置”按钮。
第一次单击“配置”按钮时,CMake将显示一个对话框,您可以在该对话框中选择用于编译VTK的构建系统。
然后,CMakeSetup GUI将会将记录在CMake Cache中发现的变量和标志,以列表的方式呈现在界面中。
第一次运行时,所有变量将被涂上红色。红色表示在上一个配置过程中生成或更改了这个缓存条目。

至此,您可以定制VTK构建过程了。
例如,如果要启用VTK的Tcl封装功能,
请在缓存值编辑器中向下滚动到VTK_WRAP_TCL条目,然后单击该值把它从OFF切换到ON。
之后,再次单击“配置”按钮。
这将导致大多数值更改为灰色,任何新值都以红色呈现。
如果您是通过二进制安装安装的Tcl/Tk,则不应该出现值为NOTFOUND的项。
如果发现有NOTFOUND项,您必须使用CMake用户界面手动指定这些路径。
如果要在CMake接口中设置或修改变量的值,请单击该变量右侧的单元格。
根据变量的类型,可能会弹出一个文件选择器、编辑框或下拉列表框用于设置或修改变量的值。

VTK的一些重要缓存值如下:

  • BUILD_SHARED_LIBS ——如果将此布尔值设置为YES,则将构建DLL或共享库。
    如果不是,则将构建静态库。默认值是静态库。
    静态库在某种程度上更容易使用,因为在运行可执行文件时,它们不需要存在于可执行文件同目录下。
    可执行文件将是独立的。这是分发基于VTK的应用程序的首选。
  • VTK_WRAP_TCL ——这确定了是否将构建TCL封装。
  • VTK_WRAP_PYTHON ——这决定了是否要建立Python封装。
  • VTK_WRAP_JAVA - 这确定了是否将构建Java封装。
    要获得CMake中任何变量的在线帮助,只需单击该值,然后选择“缓存条目的帮助”。
    大多数默认值应该是正确的。

继续单击配置,直到不再有任何红色值,并且您对所有值都很满意。
此时,您可以单击“确定”按钮。
这将导致CMake生成所选构建类型的构建文件。项目文件将位于您选择的二进制路径中。
对于MSVC构建系统,将生成解决方案(或工作空间)文件和项目文件。
需要将该项目文件(VTK.dsw加载到Visual Studio 6.0,如果是Visual Studio 2005,则应该是VTK.sln)加载到Visual Studio开发环境中,
然后通过Visual Studio的构建->设置活动配置菜单项来设置激活的构建的类型。
您可以从Debug、Release、MinSizeRel(最小体积发布版)和RelwithDebinfo(带有调试信息的发布版)等选项中选择。
您可以选择all_build项目,并像其他任何Visual Studio项目一样对其进行编译。
对于Borland编译器,CMake将会生成一系列Makefile文件,您必须使用该编译器提供的命令行make工具进行源代码编译。
Makefile文件位于您先前指定的二进制文件存储目录中。

构建VTK成功后,生成的所有库文件和可执行文件都会被输出到先前指定的二进制文件存储目录下的bin子目录下。
(除非您修改了CMake中的EXECUTABLE_OUTPUT_PATH变量或LIBRARY_OUTPUT_PATH变量)。

(注意:请勿使用MSVC++中的“重新构建所有项目”菜单选择来重建源代码。
这将删除所有CMakelists.txt文件,然后自动将其作为构建过程的一部分重新生成。
然后,MSVC将尝试重新加载它们,这会导致编译报错。
如果要重建所有内容,请删除您的VTK二进制目录,重新运行CMake,然后进行正常构建。)

如果您将BUILD_SHARED_LIBS设置为ON来构建VTK的动态链接库版本,
则您的客户端应用程序将需要在运行时找到和加载VTK的动态链接库。
您的应用程序可能有许多不同的方式在运行时找到VTK动态链接库。
每种方式都有对应的优点和缺点。

最简单的方法是“确保您的应用程序和VTK的动态链接库存在于同一目录中”。
您可以将所有VTK动态链接库复制到应用程序的目录中,也可以将应用程序构建到与VTK动态链接库相同的目录中。
通过“在您自己的应用程序的CMakelists文件中,设置EXPUTABLE_OUTPUT_PATH为VTK动态链接库的构建的目录”,可以达到这个目的。
如果您的应用程序的可执行文件和VTK DLL存在于同一目录中,则所有程序都应该能正常工作。
这些方法的“专业”性体现在它们够简单。
缺点是:如果您制作VTK动态链接库的副本,则需要确保将更新和重建后VTK动态链接库同步到应用程序目录中。
如果您的应用程序的构建输出与VTK的构建输出混合在一起,则在必须要确认来源时,可能很难确定哪个构建产物来自哪个项目。

另一种选择是修改PATH环境变量,
这样可以保证:即使VTK动态链接库与您的应用程序不在同一目录中,您的应用程序也可以找到它们。
修改PATH环境变量的方法也有好几种。
您可以打开一个命令提示符,仅在该命令提示符中修改PATH环境变量。
然后,从这个命令提示符中启动您的应用程序。
您也可以更改用户的PATH环境变量或系统范围的PATH环境变量。
建议更改用户或系统范围的PATH环境变量,
除非您需要在同一台计算机上同时使用两个或更多的VTK构建版本。

KWWidgets项目(http://www.kwwidgets.org)提供了一个很好的示例,
可以通过批处理脚本设置路径(以避免更改路径环境变量),
请参阅KWWidgets项目源码中的KwwidgetSsetuppaths.bat。
要获取KWWidgets的源代码,请按照http://www.kwwidgets.org的说明进行操作。

如果要设置一个命令提示符,使得通过该提示符启动的应用程序可以找到VTK的动态链接库,
可以为命令提示符下创建一个快捷方式,
然后设置“通过此快捷方式启动时,自动调用一个批处理文件”。
这是Visual Studio创建命令提示符快捷方式的技术,
通过Visuas Studio创建的命令提示符快捷方式启动命令提示符后,您可以在其中调用编译器或NMake。
您可以右键单击Windows启动菜单中的快捷方式,然后选择属性以查看其他命令提示快捷方式的工作方式。
您还可以在按下Ctrl键的同时将其中之一拖到桌面上,以便在桌面上创建一个副本。
然后,您可以修改桌面上快捷方式的属性,以调用自己的批处理文件,
该文件设置您的路径以及应用程序可能需要的任何其他环境设置。
将“/K batchfileName.bat”参数用于命令提示符,以运行批处理文件,然后保持命令提示符不会自动关闭。
在任何Windows命令提示中键入“CMD /?”以获取有关/K选项的更多信息。

有关在Windows上加载DLL的进一步讨论,
请参阅Windows SDK文档中对于LoadLibrary和LoadLibraryEx这两个函数的说明。

如果您已经跟随本指南执行到了这里,那么您已经在PC上成功构建了VTK。
由于VTK软件包较大也比较复杂,这可能是一个极具有挑战性的过程。
请仔细注意之前给出的说明。
如果您确实遇到了问题,可以加入VTK用户邮件列表(请参阅“其他资源”)并在那里寻求帮助。
Kitware也可以提供商业支持。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值