vtk Tutorial
Erste Schritte mit vtk
Suche…
Bemerkungen
Dieser Abschnitt bietet einen Überblick über vtk und warum ein Entwickler es möglicherweise verwenden möchte.
Es sollte auch alle großen Themen in vtk erwähnen und auf die verwandten Themen verweisen. Da die Dokumentation für vtk neu ist, müssen Sie möglicherweise erste Versionen dieser verwandten Themen erstellen.
Installation oder Setup
Aufbau und Installation unter Windows 7
Voraussetzungen
- Wenn Sie VTK aus den neuesten Quellen erstellen möchten, müssen Sie git from Here verwenden, oder Sie können eine Momentaufnahme des Codes als ZIP herunterladen und auf Ihrem Laufwerk entpacken
- CMake
- Microsoft Visual Studio 2015
- Viel Speicherplatz - mindestens ein paar GB, um auf der sicheren Seite zu sein, abhängig davon, was Sie alles bauen wollen
Fertig werden
- Ich mag es, die Dinge sauber zu halten, also lege ich normalerweise 3 Ordner an:
c:\vtk #
c:\vtk\src # 'code base' folder
c:\vtk\build # 'out of source' build folder
c:\vtk\install # 'install folder' where the 'installed' files will reside
Bei Verwendung der Git-Methode
- Öffnen Sie eine Eingabeaufforderung
- Ändern Sie das Arbeitsverzeichnis
cd c:\vtk\src
- klonen Sie das git-Repository
git clone https://gitlab.kitware.com/vtk/vtk.git
. Dies kann je nach Geschwindigkeit Ihrer Internetverbindung eine Weile dauern - Wenn Sie hinter einem Proxy arbeiten, müssen Sie git einrichten, um es verwenden zu können. Sehen Sie sich diese Frage an.
Wenn Sie die zip-Methode verwenden, entpacken Sie den Quellcode in
c:\vtk\src
Aufbau
- Starten Sie die CMake-GUI
- Wählen Sie
c:\vtk\src
fürWhere is the source code:
- Wählen Sie
c:\vtk\build
fürWhere to build the binaries:
- Klicken Sie auf
Configure
und wählen SieVisual Studio 2015
als erforderlichen Generator aus - Sie erhalten eine Reihe von Konfigurationsoptionen
- Im Allgemeinen verwende ich die folgenden Einstellungen für einen minimalen Build
-
CMAKE_INSTALL_PREFIX
=c:\vtk\install
-
BUILD_SHARED_LIBS
angekreuzt -
BUILD_DOCUMENTATION
markiert -
BUILD_TESTING
markiert -
CMAKE_CXX_MP_FLAG
. Dadurch werden alle CPU-Kerne (auf Multicore- / Multiprozessorsystemen) verwendet, um die Erstellung zu beschleunigen
-
- Weitermachen
Configure
Korrigieren von Fehlern, bis alle ROT-Einträge WEISS werden - Klicken Sie auf
Generate
- Schließen Sie die CMake-GUI
Gebäude
- Wenn die Generation erfolgreich war, sollte es sein
- Eine Visual Studio-Lösung:
c:\vtk\build\vtk.sln
- Eine Reihe von Projektdateien -
ALL_BUILD.vcxproj INSTALL.vcxproj vtkCompileTools.vcxproj VTKData.vcxproj ZERO_CHECK.vcxproj
- Eine Visual Studio-Lösung:
- Sie können dies entweder über eine Befehlszeile oder über die IDE erstellen
- Ich bevorzuge die Befehlszeile, da sie im Allgemeinen schneller ist und weniger RAM benötigt
- Verwenden der Befehlszeile
- Starten Sie die
Developer Command Prompt For Visual Studio 2015
- Ändern Sie das Arbeitsverzeichnis:
cd c:\vtk\build
- Msbuild starten:
- für Debug-Builds
-
msbuild /p:Configuration=Debug ALL_BUILD.vcxproj
-
msbuild /p:Configuration=Debug INSTALL.vcxproj
-
- für Release Builds
-
msbuild /p:Configuration=Release ALL_BUILD.vcxproj
-
msbuild /p:Configuration=Release INSTALL.vcxproj
-
- für Debug-Builds
- Starten Sie die
- Verwenden der IDE
- Öffnen Sie die
VTK.sln
mit Visual Studio 2015 und erstellen Sie dieINSTALL.vcxproj
- Diese Technik ist normalerweise langsamer, da die IDE für jedes der in der Lösung aufgeführten Projekte Intellisense erstellt
- Öffnen Sie die
-
c:\vtk\install
sollte jetzt einige neue Ordner haben-
bin
# enthält die DLL-Dateien -
lib
# enthält die lib-Dateien -
cmake
-
share
-
include
# enthält die Header-Dateien
-
Verwenden Sie den Build
- Um VTK in einem Visual C ++ - Projekt zu verwenden, muss man dies tun
- Konfigurieren Sie den Suchpfad der Compiler-Header-Datei so, dass er
c:\vtk\include\vtk-<version>
- Konfigurieren Sie den Suchpfad für die Linker-Bibliotheksdatei so, dass er
c:\vtk\lib
- Konfigurieren Sie den Linker, um eine Verknüpfung zu den erforderlichen
.lib
Dateien.lib
- Kopieren Sie die erforderlichen DLLs in den Ausgabeordner
- Konfigurieren Sie den Suchpfad der Compiler-Header-Datei so, dass er
- Ich habe eine kleine Requisitendatei für alle vier Aufgaben erstellt
c:\vtk\vtk.vsprops
<?xml version="1.0" encoding="UTF-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<VTK_ROOT_DIR>$(MSBuildThisFileDirectory)</VTK_ROOT_DIR>
<VTK_BIN_DIR>$(VTK_ROOT_DIR)\bin</VTK_BIN_DIR>
<VTK_INC_DIR>$(VTK_ROOT_DIR)\include\vtk-7.0</VTK_INC_DIR>
<VTK_LIB_DIR>$(VTK_ROOT_DIR)\lib</VTK_LIB_DIR>
</PropertyGroup>
<PropertyGroup>
<BuildDependsOn>CopyVTKBinariesList;$(BuildDependsOn);</BuildDependsOn>
</PropertyGroup>
<Target Name="CopyVTKBinariesList">
<ItemGroup>
<VtkBinaries Include="$(VTK_BIN_DIR)\*.dll" />
</ItemGroup>
<Copy SourceFiles="@(VtkBinaries)"
DestinationFiles="@(VtkBinaries->'$(OutDir)\%(RecursiveDir)%(Filename)%(Extension)')"
SkipUnchangedFiles="true" />
</Target>
<ItemDefinitionGroup>
<ClCompile>
<AdditionalIncludeDirectories>$(VTK_INC_DIR);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<AdditionalLibraryDirectories>$(VTK_LIB_DIR);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>vtkalglib-7.0.lib;vtkChartsCore-7.0.lib;vtkCommonColor-7.0.lib;vtkCommonComputationalGeometry-7.0.lib;vtkCommonCore-7.0.lib;vtkCommonDataModel-7.0.lib;vtkCommonExecutionModel-7.0.lib;vtkCommonMath-7.0.lib;vtkCommonMisc-7.0.lib;vtkCommonSystem-7.0.lib;vtkCommonTransforms-7.0.lib;vtkDICOMParser-7.0.lib;vtkDomainsChemistry-7.0.lib;vtkDomainsChemistryOpenGL2-7.0.lib;vtkexoIIc-7.0.lib;vtkexpat-7.0.lib;vtkFiltersAMR-7.0.lib;vtkFiltersCore-7.0.lib;vtkFiltersExtraction-7.0.lib;vtkFiltersFlowPaths-7.0.lib;vtkFiltersGeneral-7.0.lib;vtkFiltersGeneric-7.0.lib;vtkFiltersGeometry-7.0.lib;vtkFiltersHybrid-7.0.lib;vtkFiltersHyperTree-7.0.lib;vtkFiltersImaging-7.0.lib;vtkFiltersModeling-7.0.lib;vtkFiltersParallel-7.0.lib;vtkFiltersParallelImaging-7.0.lib;vtkFiltersProgrammable-7.0.lib;vtkFiltersSelection-7.0.lib;vtkFiltersSMP-7.0.lib;vtkFiltersSources-7.0.lib;vtkFiltersStatistics-7.0.lib;vtkFiltersTexture-7.0.lib;vtkFiltersVerdict-7.0.lib;vtkfreetype-7.0.lib;vtkGeovisCore-7.0.lib;vtkglew-7.0.lib;vtkhdf5-7.0.lib;vtkhdf5_hl-7.0.lib;vtkImagingColor-7.0.lib;vtkImagingCore-7.0.lib;vtkImagingFourier-7.0.lib;vtkImagingGeneral-7.0.lib;vtkImagingHybrid-7.0.lib;vtkImagingMath-7.0.lib;vtkImagingMorphological-7.0.lib;vtkImagingSources-7.0.lib;vtkImagingStatistics-7.0.lib;vtkImagingStencil-7.0.lib;vtkInfovisCore-7.0.lib;vtkInfovisLayout-7.0.lib;vtkInteractionImage-7.0.lib;vtkInteractionStyle-7.0.lib;vtkInteractionWidgets-7.0.lib;vtkIOAMR-7.0.lib;vtkIOCore-7.0.lib;vtkIOEnSight-7.0.lib;vtkIOExodus-7.0.lib;vtkIOExport-7.0.lib;vtkIOGeometry-7.0.lib;vtkIOImage-7.0.lib;vtkIOImport-7.0.lib;vtkIOInfovis-7.0.lib;vtkIOLegacy-7.0.lib;vtkIOLSDyna-7.0.lib;vtkIOMINC-7.0.lib;vtkIOMovie-7.0.lib;vtkIONetCDF-7.0.lib;vtkIOParallel-7.0.lib;vtkIOParallelXML-7.0.lib;vtkIOPLY-7.0.lib;vtkIOSQL-7.0.lib;vtkIOVideo-7.0.lib;vtkIOXML-7.0.lib;vtkIOXMLParser-7.0.lib;vtkjpeg-7.0.lib;vtkjsoncpp-7.0.lib;vtklibxml2-7.0.lib;vtkmetaio-7.0.lib;vtkNetCDF-7.0.lib;vtkNetCDF_cxx-7.0.lib;vtkoggtheora-7.0.lib;vtkParallelCore-7.0.lib;vtkpng-7.0.lib;vtkproj4-7.0.lib;vtkRenderingAnnotation-7.0.lib;vtkRenderingContext2D-7.0.lib;vtkRenderingContextOpenGL2-7.0.lib;vtkRenderingCore-7.0.lib;vtkRenderingFreeType-7.0.lib;vtkRenderingImage-7.0.lib;vtkRenderingLabel-7.0.lib;vtkRenderingLOD-7.0.lib;vtkRenderingOpenGL2-7.0.lib;vtkRenderingVolume-7.0.lib;vtkRenderingVolumeOpenGL2-7.0.lib;vtksqlite-7.0.lib;vtksys-7.0.lib;vtktiff-7.0.lib;vtkverdict-7.0.lib;vtkViewsContext2D-7.0.lib;vtkViewsCore-7.0.lib;vtkViewsGeovis-7.0.lib;vtkViewsInfovis-7.0.lib;vtkzlib-7.0.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemGroup />
</Project>
Die oben genannte vsprops-Datei kopiert alle verfügbaren DLLs im Ordner
c:\vtk\bin
.Um sicherzustellen, dass die DLLs gefunden werden können, können Sie alternativ die Umgebungsvariable PATH für die Debugsitzung ändern und den VTK-Binärpfad als erstes Verzeichnis angeben, das beim Laden von Abhängigkeiten durchsucht werden soll. Das unten stehende Fragment kann anstelle der
CopyVTKBinariesList
Task dazu verwendet werden.<PropertyGroup> <LocalDebuggerEnvironment>PATH=$(VTK_BIN_DIR);%PATH%;$(LocalDebuggerEnvironment)</LocalDebuggerEnvironment> </PropertyGroup>
Für die endgültige Bereitstellung möchten Sie möglicherweise ein Tool wie Dependency Walker verwenden , um herauszufinden, welche DLLs und ihre Abhängigkeiten verwendet werden, und nur die für die Weiterverteilung erforderlichen Pakete zu bündeln.
So verwenden Sie die Requisiten in einem Visual C ++ Projekt - Datei können Sie entweder das Property - Manager - Tool in Visual Studio (Menü: View => Property Manager) oder bearbeiten Sie die vcxproj mit einem Texteditor und fügen Sie diese folgende Zeile
<Import Project="C:\vtk\vtk.vsprops" />
unter den anderen Projektimporten.
Aufräumen
- Wenn Sie etwas Speicherplatz
c:\vtk\build
Ordnerc:\vtk\build
löschen. Der Nachteil ist jedoch, dass Sie nicht in vtk debuggen können
Deinstallation
- Löschen Sie einfach den Ordner
c:\vtk
wenn Siec:\vtk
VTK mehr möchten
MacOSX und Unix:
- Installieren Sie die neueste Version von CMake, die hier verfügbar ist
- Laden Sie die neueste VTK hier .
- Erstellen Sie ein Build-Verzeichnis für VTK
mkdir <path_to_build_directory
- Konfigurieren Sie mit
ccmake <path_to_VTK_directory -G "UNIX Makefiles" \ -DVTK_USE_QVTK:BOOL=ON \ -DVTK_USE_CARBON:BOOL=ON \ -DCMAKE_INSTALL_PREFIX=/usr/local \ -DVTK_USE_GUISUPPORT:BOOL=ON
ccmake <path_to_VTK_directory
- Kommen Sie in den Build - Verzeichnis und verwenden
make -j
(Sie müssen nicht verwenden-j
aber Kompilation ist wirklich lang. - Verwenden Sie schließlich
make install