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ür Where is the source code:
  • Wählen Sie c:\vtk\build für Where to build the binaries:
  • Klicken Sie auf Configure und wählen Sie Visual 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
      
  • 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
  • Verwenden der IDE
    • Öffnen Sie die VTK.sln mit Visual Studio 2015 und erstellen Sie die INSTALL.vcxproj
    • Diese Technik ist normalerweise langsamer, da die IDE für jedes der in der Lösung aufgeführten Projekte Intellisense erstellt
  • 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
  • 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 Ordner c:\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 Sie c:\vtk VTK mehr möchten

MacOSX und Unix:

  1. Installieren Sie die neueste Version von CMake, die hier verfügbar ist
  2. Laden Sie die neueste VTK hier .
  3. Erstellen Sie ein Build-Verzeichnis für VTK mkdir <path_to_build_directory
  4. 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
  5. Kommen Sie in den Build - Verzeichnis und verwenden make -j (Sie müssen nicht verwenden -j aber Kompilation ist wirklich lang.
  6. Verwenden Sie schließlich make install


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow