VTK用户指南 第二章 安装

本章介绍在计算机系统上安装VTK所需的步骤。此过程的总体难度取决于几个因素。在Microsoft Windows上,您可以安装预构建的vtk.exe并使用它运行Tcl脚本。对于Python或Java使用,要将VTK库链接到您自己的应用程序中,或在Microsoft Windows以外的任何平台上使用VTK,必须从源代码构建VTK。(平台种类太多,要使二进制发行版保持最新有太多的工作,因此我们着重于使VTK易于在任何地方构建。)如果您正在编译VTK源代码并构建自己的库,预计在速度较快的多处理器系统上要花费半个小时,而在速度较慢且内存受限制的系统上为数小时。另外,构建时间取决于围绕VTK C++核心包装的解释语言数量以及系统配置。

您可能希望参考第19页的“系统体系结构”以获取VTK体系结构的概述,这可能会使编译过程更容易遵循。另外,如果遇到麻烦,可以联系vtkusers邮件列表(请参阅第6页的“其他资源”)。

2.1概述

VTK可以在许多不同的计算机平台上编译并运行。 对于平台,我们指的是操作系统,硬件配置和编译器的各种组合。由于可能存在大量组合,因此VTK的二进制分发通常不可行。因此,要安装VTK,您将必须编译并链接源代码以生成库和可执行文件。如果要使用Tcl解释语言创建VTK应用程序,则此过程例外。在这种情况下,预编译的二进制文件可能适用于Windows平台。否则,您将必须从源代码编译Tcl和Python VTK可执行文件。

本章首先概述了跨平台制作工具CMake。 在所有操作系统上都使用CMake来配置构建环境。接下来,本章根据要安装的操作系统类型分为两部分:Windows或UNIX(对于Macintosh OSX或Linux,请遵循UNIX指示信息)。您只需要阅读安装的相应部分。可视化工具包无法在Windows 3.1的旧版本上运行。它也不能在OSX 10.2(Jaguar)之前的任何Macintosh OS上运行。

2.2 CMake

CMake是用于配置和管理构建过程的开源、跨平台工具。简单、独立于平台的文件(CMakeLists.txt)用于描述构建过程并捕获依赖项。运行CMake时,它将为您正在使用的特定编译器/操作系统生成本机生成文件。例如,在带有Microsoft Visual Studio的Windows上,将创建解决方案文件和项目文件。在Unix上,将创建makefile。这样,您可以使用单个源代码树轻松地在任何计算机上编译VTK,并使用所使用平台所固有的开发工具(编辑器,调试器,分析器,编译器等)。(从cmake.org中了解有关CMake的更多信息。Kitware还出版了《掌握CMake》一书,可以获取详细信息。)可从http://www.cmake.org下载最新的CMake。

运行CMake需要三项基本信息:使用哪个编译器,源代码目录(即代码树)所在的位置以及放置目标代码、库和编译过程产生的二进制文件所在的目录(即构建树)。CMake将读取在代码树中找到的顶级CMakeLists.txt文件,并在构建树中生成一个缓存(CMakeCache.txt)。请注意,CMake可以很好地处理复杂的源代码目录结构-源代码树的每个子目录中都有一个CMakeLists.txt文件。

一旦提供了这些基本信息,用户便会调用配置步骤。这使CMake读取顶级CMakeLists.txt文件,确定系统配置,找到系统资源,并进入源树中的子目录。在CMake运行时,它会发现CMake变量和标志(CMake缓存条目)来控制构建过程。这些将在配置过程结束后呈现给用户。如果用户希望更改缓存值,则CMake提供了一个简单的GUI来进行更改。更改后,将执行另一个配置调用。重复进行此配置过程,直到不需要其他更改为止。一旦达到这一点,用户将调用生成步骤。生成步骤生成用于控制指定编译器生成过程的解决方案文件、项目文件或生成文件。

在随后的两个部分(Windows和Unix)中,提供了针对每个平台运行CMake的特定说明。请注意,上述一般说明适用于所有系统。CMake用户界面可能会因您的平台而异。尽管cmake-gui是CMake 2.6及更高版本中基于新Qt的界面,但在平台之间却非常相似。另外,如果可能,请为CMake安装预编译的二进制文件,而不是从源代码构建CMake。

2.3在Windows XP、Vista或更高版本上安装

VTK在Windows下有两种类型的VTK安装。第一个是二进制/可执行安装,使您可以通过运行预编译的可执行文件在Tcl中进行开发。第二种是完整的源代码安装,要求您编译VTK源代码(生成C++库)和VTK包装器代码(生成Java,Tcl和Python可执行文件)。在两种类型的安装中,二进制安装要容易得多。源代码安装的优点是您可以监视,调试和修改VTK代码-如果您是类开发人员,这可能就是您想要的。但是请注意,即使选择二进制安装,仍可以使用运行时可编程过滤器以多种方式扩展VTK,方法是创建自己的类(请参见第305页的“编写VTK类:概述”)。请参见第419页的“可编程过滤器”),并在运行时将VTK类替换为您自己的类版本(请参见第307页的“对象工厂”)。

图2-1

二进制安装
要安装VTK Tcl/Tk可执行文件vtk.exe,请运行安装程序vtk-XXX-win32.exe,该程序可从vtk.org的下载页面获得,该程序将弹出安装GUI(请参见图2-1)。安装程序程序文件名中的“X.X.X”表示用于构建它的VTK的版本号。您也可以下载VTK源代码树和VTKData目录的相应* .zip文件。在发布VTK的新版本时,我们通过vtk.org下载页面上的链接使它们可用。在vtkusers邮件列表上查看发行公告。
VTK源代码树包含许多*.tcl脚本,您可以使用它们来了解各种VTK类的工作方式。下载vtk-X.X.X.zip和vtkdata-X.X.X.zip文件并将其解压缩到硬盘中。在VTK文件夹中,您将找到“Examples”文件夹。在Examples文件夹下,有GUI,MangledMesa和Parallel等文件夹;这些文件夹中的每一个都有一个名为Tcl的子文件夹,其中包含各种Tcl示例。除了“Examples”文件夹外,还有诸如“Graphics”,“Imaging”和“Filtering”之类的库文件夹。每个文件夹都包含一个Testing/Tcl子文件夹,其中包含VTK的回归测试。尝试通过双击Tcl文件运行任何示例。首次双击Tcl文件(扩展名为.tcl)时,可能会出现一个对话框,询问您使用什么来打开文件。这意味着您需要在Tcl文件和vtk可执行文件之间创建关联以运行它们。如果发生这种情况,请单击对话框上的“从列表中选择程序”按钮,然后单击“确定”。将出现一个新的对话框,标有“打开方式”。单击此对话框上的“浏览”按钮以显示文件浏览器。在浏览器中,转到安装VTK的目录。通常,是C:\Program Files\VTK 5.4或C:\Program Files\Documents and Settings\ <username>\My Documents\VTK 5.4。在其中,您应该看到一个bin文件夹,其中包含一个名为vtk的程序。双击vtk(或vtk.exe)。检查在“打开方式”对话框中是否选中了“始终使用所选程序打开这种文件”复选框,然后选择“确定”按钮。然后,您的示例应运行。将来,双击任何Tcl脚本将自动开始执行vtk。

另外,如果Tcl文件已经与wish可执行文件关联(通过安装Tcl/Tk二进制文件),则双击Tcl文件时,您将看到类似于以下内容的错误消息:执行“时找不到软件包vtk 包要求vtk”。 如果收到此错误消息,请右键单击Tcl文件,然后从显示的弹出菜单中选择“打开方式…”。 将出现“打开方式”对话框。按照上一段中的其余说明,将Tcl文件与vtk可执行文件关联。

这样就完成了Windows的二进制安装过程。在第3章中,我们将详细介绍如何编写自己的C++,Tcl,Java和Python应用程序。

源代码安装
要开发C++应用程序并扩展VTK,您将需要进行源代码安装。这更具挑战性,并且在编译VTK时可能会占用您几个小时的时间。首先,您需要确保您的机器能够构建VTK源代码版本。您必须运行Windows XP,Vista或更高版本。您将需要在计算机上安装C++编译器。本指南中的说明适用于Microsoft Visual Studio 2005或更高版本,可与VTK很好地配合使用。我们还支持Borland C++编译器,Cygwin或MinGW下的gcc,NMake,Microsoft Visual C++免费版和Microsoft Visual C++2005。如果尚未安装C++编译器,则必须首先进行此操作。

下一个要考虑的问题是您计划使用哪些其他工具。如果您打算用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/Tk 8.4版可与VTK 5.4.0版一起使用。)

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

图2-2

运行CMake。 设置完C++编译器,安装CMake并安装了所有其他软件包(例如Tcl,Java和Python)之后,即可开始运行CMake。要运行CMake,在“开始”菜单的“程序”->“ CMake”->“ CMakeSetup”下应有一个CMake条目。CMakeSetup.exe界面(图2–2)是一个简单的程序,可让您针对特定计算机和VTK的所需选项自定义构建。首先,您必须告诉CMakeSetup VTK的源代码树位于何处,以及要将VTK二进制文件放到哪里(这些二进制文件是通过编译源代码生成的)。您可以使用“浏览”按钮或通过手动输入路径来指定这些目录。选择源目录和二进制目录后,应单击“配置”按钮。首次单击“配置”按钮时,CMake将显示一个对话框,您可以从中选择用于编译VTK的构建系统。然后,CMakeSetup GUI将填充在CMake缓存中找到的变量和值的列表。第一次运行时,所有变量都将显示为红色。红色表示在上一个配置步骤中生成或更改了缓存条目。
此时,您可以自定义VTK构建。例如,如果要启用VTK的Tcl包装功能,请在缓存值编辑器中向下滚动到条目VTK_WRAP_TCL,然后单击该值以将其从OFF切换为ON。之后,再次单击配置按钮。这将导致大多数值变为灰色,而任何新值将显示为红色。如果从二进制安装中安装了Tcl/ k,则所有新值都不应该具有NOTFOUND作为值;如果这样做,则必须使用CMake界面手动指定这些路径。要在CMake界面中设置任何值,请单击显示该值的变量的右侧。根据变量的类型,可能有一个文件选择器,编辑框或下拉菜单将允许您编辑值。

VTK的一些重要缓存值包括:
• BUILD_SHARED_LIBS-如果此布尔值设置为yes,则将构建DLL或共享库。如果不是,则将构建静态库。默认值为静态库。静态库在某种程度上更易于使用,因为在运行可执行文件时它们不必位于路径中。可执行文件将是独立的。对于基于VTK的应用程序的分发,这是首选。
• VTK_WRAP_TCL-这确定是否构建Tcl包。
• VTK_WRAP_PYTHON-确定是否构建Python包。
• VTK_WRAP_JAVA-这确定是否构建Java包。
要获得CMake中任何变量的在线帮助,只需在值上单击鼠标右键,然后选择“缓存条目帮助”。大多数默认值都应正确。

继续单击“配置”,直到不再有任何红色值并且您对所有值都满意为止。此时,您可以单击确定按钮。这将导致CMake为选定的构建类型写出构建文件。对于Microsoft,项目文件将位于您选择的二进制路径中。只需加载此项目文件(将VTK.dsw加载到Visual Studio 6.0中,将VTK.sln用于.NET),然后在Visual Studio的“构建”->“设置活动配置”菜单中选择要构建的配置。您将选择Debug,Release,MinSizeRel(最小发布版本)和RelWithDebInfo(包含调试信息的发布版本)。您可以选择ALL_BUILD项目,并像其他任何Visual Studio项目一样对其进行编译。对于Borland,将生成makefile,并且必须使用该编译器提供的命令行make。生成文件位于您指定的二进制目录中。
一旦构建了VTK,生成的所有库和可执行文件都将位于您指定给CMake的子文件夹bin中的二进制目录中(除非您更改了CMake中的EXECUTABLE_OUTPUT_PATH或LIBRARY_OUTPUT_PATH变量)。

(注意:请勿使用MSVC++的“全部重建”菜单选项来重建源代码。这将删除所有CMakeLists.txt文件,这些文件随后会在生成过程中自动重新生成。MSVC将尝试重新加载它们,并导致错误。要重建所有内容,请删除您的VTK二进制目录,重新运行CMake,然后执行常规构建。)

如果您在BUILD_SHARED_LIBS处于打开状态下构建了VTK,则您的客户端应用程序将需要在运行时定位并加载VTK DLL。您的应用程序可以在运行时找到VTK DLL的方式有很多。每种方式都有优点和缺点。最简单的方法是确保您的应用程序和VTK DLL位于同一目录中。您可以将所有VTK DLL复制到应用程序的目录中,或使用自己的应用程序CMakeLists文件中的EXECUTABLE_OUTPUT_PATH将应用程序构建到与VTK DLL相同的目录中。如果您的应用程序的可执行文件和VTK DLL位于同一目录中,则所有内容都应该可以正常工作。这些方法的“优点”是它们的简单性。缺点是:如果制作了VTK DLL的副本,则在更新和重建VTK时需要确保再次复制它们。如果您的应用程序的构建输出与VTK的构建输出混合在一起,则在必要时可能很难确定哪个构建产品来自哪个项目。

另一种选择是修改PATH环境变量,以便您的应用程序可以找到VTK DLL,即使它们不在同一目录中也是如此。但是,在此替代方案中,有两种方法可以完成任务。您可以设置命令提示符,仅在该命令提示符中修改PATH,然后从那里启动应用程序,或者可以更改用户的PATH环境变量或系统范围的PATH环境变量。建议更改用户的或系统范围的PATH环境变量,除非您需要在同一台计算机上安装两个或多个不同的VTK版本。

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

若要设置可用于启动可找到VTK DLL的可执行文件的命令提示符,请创建命令提示符的快捷方式,然后将其设置为在启动时调用批处理文件。这是Visual Studio用于创建命令提示符的技术,您可以在其中运行命令行编译器或nmake。您可以右键单击Windows“开始”菜单中的快捷方式,然后选择“属性”以查看其他命令提示符快捷方式的工作方式。您还可以在按住Control键的同时将其中之一拖放到桌面上,以在桌面上制作副本。然后,您可以在桌面上修改快捷方式的属性,以调用自己的批处理文件,该文件设置了PATH以及应用程序可能需要的任何其他环境设置。在命令提示符下使用“ / K batchfilename.bat”参数来运行批处理文件,然后使命令提示符保持运行状态。输入“ cmd /?”从任何Windows命令提示符下获取有关/ K选项的更多信息。

有关在Windows上查找DLL的进一步讨论,请参阅Windows SDK文档中的LoadLibrary和LoadLibraryEx函数。

如果到目前为止,您已经成功在PC上构建了VTK。由于软件的大小和复杂性,这可能是一个具有挑战性的过程。请注意前面给出的说明。如果确实遇到问题,您可能希望加入vtkusers邮件列表(请参阅第6页的“其他资源”)并在那里寻求帮助。也可以从Kitware获得商业支持。

2.4在Unix系统上安装VTK

Unix系统种类繁多。因此,您将必须编译VTK源代码以构建二进制文件和可执行文件。

源代码安装
本节将引导您完成在UNIX系统上构建VTK所需的步骤。与Windows不同,预编译的库和可执行文件不适用于Unix系统,因此您必须自己编译VTK。(注意:请按照第6页的“其他资源”中所述检查vtkusers邮件列表和其他资源,某些用户在Web上维护二进制文件。)通常,这是一个非常简单的过程,大约需要一到四个小时,具体取决于机器的速度。(使用并行构建的高端大内存多处理器计算机可以在不到10分钟的时间内构建C++和Tcl库和可执行文件!)大部分时间都花在等待计算机编译源代码上。您只需要花费10到30分钟的时间。第一步是确保您具有构建VTK的必要资源。为了安全起见,您将需要大约300 MB的磁盘空间。在某些系统上,例如SGI,您可能需要更多空间,尤其是在编译VTK的调试版本时。由于VTK是用C++编写的,因此您还需要一个C++编译器。通常,C++编译器将称为CC,g++或acc。如果不确定您是否具有C++编译器,请与支持人员联系。

如果打算将VTK与Tcl/Tk,Python或Java一起使用,则首先需要下载并安装这些软件包。可从Sun Microsystems的http://www.java.sun.com获得Java JDK。如果您计划使用Tcl/Tk且尚未在系统上安装Tcl/Tk,则需要从http://www.tcl.tk下载Tcl/Tk。可以从http://www.python.org下载Python。请按照这些软件包中的说明进行构建。

CMake
与Windows环境类似,Unix上的VTK在构建过程中使用CMake。 (请参阅有关CMake的上一节。)对于许多Unix系统,都有预编译的CMake二进制文件;请参见CMake。但是,如果二进制文件不可用,则可能必须构建CMake。(转到http://www.cmake.org下载预编译的二进制文件。)

安装CMake。 如果有预编译的二进制文件,请下载tar文件,然后将其解压缩到目标目录(通常为/ usr / local)中。 确保cmake及其关联的可执行文件在您的路径中,或者通过提供cmake及其关联的可执行文件的完整路径来运行它们。
编译CMake。 如果没有预编译的CMake二进制文件,则必须构建并安装CMake。要构建和安装CMake,只需将源代码(可从http://www.cmake.org找到)解压缩到一个目录中,然后运行(在该目录中):

./configure
make 
make install

如果您没有root特权,则可以跳过上面的第三步(即进行安装)。 CMake可执行文件将位于CMake/bin/。可以使用两种不同的CMake可执行文件来配置VTK:ccmake提供了与Windows安装部分中所述的CMakeSetup非常相似的基于终端的界面,而cmake实现了一个向导,该向导要求您回答问题列表以完成以下操作:配置构建。

最好告诉CMake您要使用哪些C ++和C编译器。 在大多数Unix系统上,您可以通过以下方式设置信息:

setenv CXX /your/c++/compiler 
setenv CC /your/c/compiler 

export CXX=/your/c++/compiler 
export CC=/your/c/compiler  

否则,CMake将自动检测您的编译器-但是,如果系统上有多个编译器,则可能不是您想要的那个。完成此操作后,请在与VTK源目录相同的级别上创建一个空的二进制目录(例如VTK-bin),然后在其中运行CMake,并将路径转到VTK源目录,如下所示。

cd VTK-bin 
ccmake ../VTK

cd VTK-bin 
cmake -i ../VTK 

(以下两个小节中的说明描述了ccmake和cmake -i之间的区别。)熟悉configure脚本的UNIX开发人员将注意到CMake和configure的功能相似。 但是,configure使用命令行参数来控制生成文件的生成,而在CMake中,可以从用户界面设置生成选项。

使用基于终端的用户界面(ccmake)自定义构建。 ccmake具有一个简单的基于终端的界面,使您可以使用所需的选项自定义特定机器的VTK构建。使用ccmake运行CMake之后,将为您提供一系列选项,可以对其进行修改以自定义VTK构建。CMake将能够将大多数这些选项设置为合理的默认值。要更改值,只需使用箭头键滚动并在所需选项突出显示时按Enter。然后,您将能够编辑该选项(除非变量是布尔值,在这种情况下,按Enter键将切换值)。完成编辑操作后,再次按Enter键以继续滚动选项。设置完所需的所有选项后,按“c”。然后,CMake将处理配置文件,并在必要时在顶部显示新选项(例如,如果打开VTK_WRAP_TCL,将为您提供Tcl/Tk库位置的选项并包括路径)。如果有新选项,则应进行设置(或对默认值满意的情况下将其保留),然后按“c”重新配置,并继续此过程,直到没有新选项为止。完成此迭代过程后,将提供新命令:生成和退出。现在,您可以按“g”使CMake生成新的makefile并退出。如果将来需要更改构建选项,只需重新运行ccmake并按照上面的说明进行操作即可。

使用交互式向导模式(cmake -i)自定义构建。 在某些平台上,ccmake提供的基于终端的界面可能不起作用。在这种情况下,请尝试使用-i(交互式向导)选项进行cmake。完成后,它将询问您是否要查看高级选项。大多数用户将不必更改高级选项。接下来,CMake将询问您问题列表。对于每个选项,都会有一行描述其功能以及默认(当前)值。在大多数情况下,CMake将能够生成可接受的默认选项。但是,在某些情况下,例如当OpenGL库之类的库未位于预期位置时,您将不得不告诉CMake正确的设置。此外,默认情况下,不会创建Tcl、Python和Java的绑定。如果要支持这些语言中的一种或多种,​​则必须打开相应的VTK_WRAP_XXX选项,并在必要时告知CMake必要的库和头文件的位置。回答所有问题后,将生成所有生成文件,并且VTK已准备就绪。如果将来需要更改构建选项,则可以在向导模式下重新运行CMake并再次回答所有问题。

编译源代码CMake完成运行并生成必要的makefile后,您可以键入make,并且VTK应该进行编译。一些make实用程序(例如GNU make(gmake))支持并行构建(例如,带有-j选项的gmake)。即使在单个处理器系统上,也可能使用并行make,因为通常该进程受IO限制,并且处理器可以处理多个编译。如果确实遇到问题,您可能希望加入vtkusers邮件列表(请参阅第6页的“其他资源”)并在那里寻求帮助。也可以从Kitware获得商业支持。

在多个平台上构建VTK如果计划为多种体系结构构建VTK,则可以为每种体系结构复制整个VTK树并按照上述说明进行操作,也可以为VTK源树复制一份并产生对象各个目录中每种体系结构的代码,库和可执行文件。这种方法需要为每个体系结构(例如vtk-solaris)创建一个新的构建目录(确保您有足够的磁盘空间)。假设新目录是在VTK源代码目录的旁边创建的,请将目录(cd)更改为该目录,然后运行CMake,类似于以下示例:

cd /yourdisk 
ls (output is: VTK vtk-solaris vtk-sgi) 
cd vtk-solaris 
cmake -i ../VTK 

ccmake ../VTK 

这将在vtk-solaris目录中创建makefile。现在,您可以按照上一节中的说明来编译VTK。

安装VTK
现在已经构建了VTK,可执行文件和库将位于build目录的子目录bin /中。如果您打算与UNIX系统上的多个开发人员共享该构建,并且您具有root特权,则通常最好运行make install命令。除非将构建选项CMAKE_INSTALL_PREFIX更改到另一个位置,否则这会将VTK安装到/usr/local。运行make install将复制您需要编译的所有文件并将VTK运行到其他用户可以共享的目录中。

这里总结了UNIX下VTK的构建和安装部分。如果您需要有关CMake的更多信息,请访问http://www.cmake.org或从Kitware(http://www.kitware.com/products/cmakebook.html)购买Mastering CMake书籍。本软件指南的第3章提供了有关如何运行示例和创建自己的应用程序的更多详细信息。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值