vtk Tutorial
Iniziare con vtk
Ricerca…
Osservazioni
Questa sezione fornisce una panoramica su cosa sia il vtk e sul motivo per cui uno sviluppatore potrebbe volerlo utilizzare.
Dovrebbe anche menzionare qualsiasi argomento di grandi dimensioni all'interno di vtk e collegarsi agli argomenti correlati. Poiché la documentazione di vtk è nuova, potrebbe essere necessario creare versioni iniziali di tali argomenti correlati.
Installazione o configurazione
Costruzione e installazione su Windows 7
Prerequisiti
- Se vuoi creare VTK dalle ultime fonti hai bisogno di git da Qui o puoi scaricare un'istantanea del codice come zip e decomprimerlo sul tuo disco
- CMake
- Microsoft Visual Studio 2015
- Un sacco di spazio libero - almeno un paio di GB per essere al sicuro, in realtà dipende da ciò che tutto ciò che si vuole costruire
Prepararsi
- Mi piace mantenere le cose pulite quindi di solito creo 3 cartelle in questo modo:
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
Se usi il metodo git,
- apri un prompt dei comandi
- cambia la directory di lavoro
cd c:\vtk\src
- clonare il repository
git clone https://gitlab.kitware.com/vtk/vtk.git
. Questo potrebbe richiedere del tempo a seconda della velocità della tua connessione internet - Se stai lavorando dietro un proxy, dovrai installare git per usarlo. Vedi questa domanda su come farlo.
Se si utilizza il metodo zip, decomprimere il codice sorgente in
c:\vtk\src
Configurazione
- Avvia la GUI di CMake
- Selezionare
c:\vtk\src
perWhere is the source code:
- Selezionare
c:\vtk\build
perWhere to build the binaries:
- Premi
Configure
e selezionaVisual Studio 2015
come generatore richiesto - Ti verrà presentato un numero di opzioni di configurazione
- In genere utilizzo le seguenti impostazioni per una build minima
-
CMAKE_INSTALL_PREFIX
=c:\vtk\install
-
BUILD_SHARED_LIBS
spuntato -
BUILD_DOCUMENTATION
-
BUILD_TESTING
-
CMAKE_CXX_MP_FLAG
. Questo utilizzerà tutti i core della CPU (su sistemi multicore / multiprocessore) per accelerare la build
-
- Tenere premuto
Configure
correggere eventuali errori finché tutte le voci RED diventano BIANCHE - Hit
Generate
- Chiudi la GUI di CMake
Costruzione
- Se la generazione ha avuto successo, dovrebbe esserci
- Una soluzione di Visual Studio:
c:\vtk\build\vtk.sln
- Un mucchio di file di progetto -
ALL_BUILD.vcxproj INSTALL.vcxproj vtkCompileTools.vcxproj VTKData.vcxproj ZERO_CHECK.vcxproj
- Una soluzione di Visual Studio:
- È possibile creare questo utilizzando da una riga di comando o utilizzando l'IDE
- Preferisco la riga di comando in quanto è generalmente più veloce e utilizza meno RAM
- Usando la riga di comando
- Avviare
Developer Command Prompt For Visual Studio 2015
- Cambia directory di lavoro:
cd c:\vtk\build
- Avvia msbuild:
- per le build di debug
-
msbuild /p:Configuration=Debug ALL_BUILD.vcxproj
-
msbuild /p:Configuration=Debug INSTALL.vcxproj
-
- per le versioni di rilascio
-
msbuild /p:Configuration=Release ALL_BUILD.vcxproj
-
msbuild /p:Configuration=Release INSTALL.vcxproj
-
- per le build di debug
- Avviare
- Utilizzando l'IDE
- Aprire
VTK.sln
con Visual Studio 2015 eVTK.sln
ilVTK.sln
INSTALL.vcxproj
- Questa tecnica di solito è più lenta in quanto l'IDE inizierà a costruire intellisense per ciascuno dei progetti elencati nella soluzione
- Aprire
-
c:\vtk\install
dovrebbe ora avere alcune nuove cartelle-
bin
# contiene i file dll -
lib
# contiene i file lib -
cmake
-
share
-
include
# contiene i file di intestazione
-
Usando la build
- Per utilizzare VTK in un progetto Visual C ++, è necessario
- Configurare il percorso di ricerca del file di intestazione del compilatore per includere
c:\vtk\include\vtk-<version>
- Configurare il percorso di ricerca del file della libreria linker per includere
c:\vtk\lib
- Configura il linker per collegarsi ai file
.lib
richiesti - Copia le DLL richieste nella cartella di output
- Configurare il percorso di ricerca del file di intestazione del compilatore per includere
- Ho messo insieme un piccolo file di oggetti di scena per gestire tutte le quattro attività
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>
Il file vsprops sopra copia tutte le DLL disponibili nella cartella
c:\vtk\bin
.Un modo alternativo per assicurarsi che le DLL possano essere individuate consiste nell'utilizzare modificare la variabile di ambiente PATH per la sessione di debug e inserire il percorso dei binari VTK come prima directory da cercare quando si caricano le dipendenze. Il seguente frammento può essere invece del compito
CopyVTKBinariesList
per farlo.<PropertyGroup> <LocalDebuggerEnvironment>PATH=$(VTK_BIN_DIR);%PATH%;$(LocalDebuggerEnvironment)</LocalDebuggerEnvironment> </PropertyGroup>
Per la distribuzione finale è possibile utilizzare uno strumento come Dependency Walker per rintracciare quali DLL e relative dipendenze vengono utilizzate e raggruppare solo quelle per la ridistribuzione.
Per utilizzare il file prop in un progetto Visual C ++, puoi utilizzare lo strumento Property Manager in Visual Studio (Menu: View => Property Manager) oppure modificare il vcxproj utilizzando un editor di testo e aggiungere la seguente riga
<Import Project="C:\vtk\vtk.vsprops" />
sotto le altre importazioni del progetto.
Pulire
- Se desideri recuperare spazio su disco, puoi eliminare la cartella
c:\vtk\build
ma il lato negativo è che non puoi eseguire il debug in vtk
disinstallazione
- Basta eliminare la cartella
c:\vtk
se non si desidera più VTK
MacOSX e Unix:
- Installa l'ultima versione di CMake disponibile qui
- Scarica l'ultimo VTK qui .
- Creare una directory di build per VTK
mkdir <path_to_build_directory
- Configura con
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
o usa la GUI per farlo conccmake <path_to_VTK_directory
- Entra nella directory build e usa
make -j
(non devi usare-j
ma la compilazione è molto lunga. - Finalmente usa
make install