Szukaj…


Uwagi

W tej sekcji omówiono, czym jest vtk i dlaczego deweloper może chcieć z niego korzystać.

Powinien także wymieniać wszelkie duże tematy w vtk i zawierać linki do powiązanych tematów. Ponieważ Dokumentacja dla vtk jest nowa, może być konieczne utworzenie początkowych wersji tych pokrewnych tematów.

Instalacja lub konfiguracja

Kompilacja i instalacja w systemie Windows 7

Wymagania wstępne

  • Jeśli chcesz zbudować VTK z najnowszych źródeł, potrzebujesz git tutaj lub możesz pobrać migawkę kodu jako plik zip i rozpakować na dysk
  • CMake
  • Microsoft Visual Studio 2015
  • Dużo wolnego miejsca - co najmniej kilka GB, aby być po bezpiecznej stronie, naprawdę w zależności od wszystkiego, co chcesz zbudować

Przygotowywanie się

  • Lubię dbać o porządek, dlatego zwykle tworzę 3 foldery:
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
  • Jeśli używasz metody git,

    • otwórz wiersz polecenia
    • zmień katalog roboczy cd c:\vtk\src
    • sklonuj repozytorium git clone https://gitlab.kitware.com/vtk/vtk.git . Może to chwilę potrwać w zależności od szybkości połączenia internetowego
    • Jeśli pracujesz za serwerem proxy, musisz skonfigurować git, aby z niego korzystać. Zobacz to pytanie, jak to zrobić.
  • Jeśli używasz metody zip, rozpakuj kod źródłowy do c:\vtk\src

Konfiguracja

  • Uruchom interfejs graficzny CMake
  • Wybierz c:\vtk\src dla Where is the source code:
  • Wybierz c:\vtk\build dla Where to build the binaries:
  • Kliknij Configure i wybierz Visual Studio 2015 jako wymagany generator
  • Pojawi się szereg opcji konfiguracji
  • Zasadniczo używam następujących ustawień dla minimalnej wersji
    • CMAKE_INSTALL_PREFIX = c:\vtk\install
    • BUILD_SHARED_LIBS
    • BUILD_DOCUMENTATION BUILD_DOCUMENTATION
    • BUILD_TESTING niezaznaczone
    • CMAKE_CXX_MP_FLAG . Spowoduje to użycie wszystkich rdzeni procesora (w systemach wielordzeniowych / wieloprocesorowych) w celu przyspieszenia kompilacji
  • Ciągłe trafianie Configure poprawianie błędów, aż wszystkie CZERWONE wpisy staną się BIAŁE
  • Hit Generate
  • Zamknij CMake GUI

Budynek

  • Jeśli generacja zakończyła się powodzeniem, powinno być
    • Rozwiązanie Visual Studio:
      c:\vtk\build\vtk.sln
      
    • Kilka plików projektu -
      ALL_BUILD.vcxproj
      INSTALL.vcxproj
      vtkCompileTools.vcxproj
      VTKData.vcxproj
      ZERO_CHECK.vcxproj
      
  • Możesz to zbudować za pomocą wiersza polecenia lub IDE
  • Wolę wiersz poleceń, ponieważ jest on ogólnie szybszy i zużywa mniej pamięci RAM
  • Za pomocą wiersza polecenia
    • Uruchom Developer Command Prompt For Visual Studio 2015
    • Zmień katalog roboczy: cd c:\vtk\build
    • Uruchom msbuild:
      • do kompilacji debugowania
        • msbuild /p:Configuration=Debug ALL_BUILD.vcxproj
        • msbuild /p:Configuration=Debug INSTALL.vcxproj
      • dla wersji kompilacji
        • msbuild /p:Configuration=Release ALL_BUILD.vcxproj
        • msbuild /p:Configuration=Release INSTALL.vcxproj
  • Korzystanie z IDE
    • Otwórz VTK.sln pomocą Visual Studio 2015 i skompiluj INSTALL.vcxproj
    • Ta technika jest zwykle wolniejsza, ponieważ IDE zacznie budować inteligencję dla każdego z projektów wymienionych w rozwiązaniu
  • c:\vtk\install powinien teraz mieć nowe foldery
    • bin # zawiera pliki dll
    • lib # zawiera pliki lib
    • cmake
    • share
    • include # zawiera pliki nagłówkowe

Korzystanie z kompilacji

  • Aby użyć VTK w projekcie Visual C ++, trzeba
    • Skonfiguruj ścieżkę wyszukiwania pliku nagłówka kompilatora, aby zawierała c:\vtk\include\vtk-<version>
    • Skonfiguruj ścieżkę wyszukiwania pliku biblioteki linkera, aby zawierała c:\vtk\lib
    • Skonfiguruj konsolidator, aby łączył się z wymaganymi plikami .lib
    • Skopiuj wymagane biblioteki DLL do folderu wyjściowego
  • c:\vtk\vtk.vsprops mały plik rekwizytów do obsługi wszystkich czterech zadań 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>
  • Powyższy plik vsprops kopiuje wszystkie dostępne biblioteki dll w folderze c:\vtk\bin .

  • Alternatywnym sposobem upewnienia się, że biblioteki DLL mogą być zlokalizowane, jest zmiana zmiennej środowiskowej PATH dla sesji debugowania i umieszczenie ścieżki binarnej VTK jako pierwszego katalogu do przeszukania podczas ładowania zależności. Poniższy fragment może być zamiast zadania CopyVTKBinariesList aby to zrobić.

    <PropertyGroup>
      <LocalDebuggerEnvironment>PATH=$(VTK_BIN_DIR);%PATH%;$(LocalDebuggerEnvironment)</LocalDebuggerEnvironment>
    </PropertyGroup>
    
  • Do ostatecznego wdrożenia możesz użyć narzędzia, takiego jak Dependency Walker, aby wyśledzić, które biblioteki dll i ich zależności są używane, i pakuj tylko te do redystrybucji.

  • Aby użyć pliku props w projekcie Visual C ++, możesz użyć narzędzia Property Manager w Visual Studio (Menu: View => Property Manager) lub edytować vcxproj za pomocą edytora tekstu i dodać następujący wiersz <Import Project="C:\vtk\vtk.vsprops" /> poniżej importu innych projektów.

Sprzątanie

  • Jeśli chcesz odzyskać trochę miejsca na dysku, możesz usunąć folder c:\vtk\build ale wadą jest to, że nie można debugować w vtk

Odinstalowanie

  • Po prostu usuń folder c:\vtk jeśli nie chcesz już c:\vtk VTK

MacOSX i Unix:

  1. Zainstaluj najnowszą wersję CMake dostępną tutaj
  2. Pobierz najnowszy VTK tutaj .
  3. Utwórz katalog kompilacji dla VTK mkdir <path_to_build_directory
  4. Konfiguracja z 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 lub używać GUI do tego z ccmake <path_to_VTK_directory
  5. Wejdź do katalogu kompilacji i użyj make -j (nie musisz używać -j ale kompilacja jest naprawdę długa.
  6. Na koniec użyj make install


Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow