vtk Samouczek
Rozpoczęcie pracy z vtk
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
dlaWhere is the source code:
- Wybierz
c:\vtk\build
dlaWhere to build the binaries:
- Kliknij
Configure
i wybierzVisual 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
- Rozwiązanie Visual Studio:
- 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
-
- do kompilacji debugowania
- Uruchom
- Korzystanie z IDE
- Otwórz
VTK.sln
pomocą Visual Studio 2015 i skompilujINSTALL.vcxproj
- Ta technika jest zwykle wolniejsza, ponieważ IDE zacznie budować inteligencję dla każdego z projektów wymienionych w rozwiązaniu
- Otwórz
-
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
- Skonfiguruj ścieżkę wyszukiwania pliku nagłówka kompilatora, aby zawierała
-
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:
- Zainstaluj najnowszą wersję CMake dostępną tutaj
- Pobierz najnowszy VTK tutaj .
- Utwórz katalog kompilacji dla VTK
mkdir <path_to_build_directory
- 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 zccmake <path_to_VTK_directory
- Wejdź do katalogu kompilacji i użyj
make -j
(nie musisz używać-j
ale kompilacja jest naprawdę długa. - Na koniec użyj
make install