vtk Tutorial
Empezando con vtk
Buscar..
Observaciones
Esta sección proporciona una descripción general de qué es vtk y por qué un desarrollador puede querer usarlo.
También debe mencionar cualquier tema grande dentro de vtk y vincular a los temas relacionados. Dado que la Documentación para vtk es nueva, es posible que deba crear versiones iniciales de esos temas relacionados.
Instalación o configuración
Construcción e instalación en Windows 7
Prerrequisitos
- Si desea compilar VTK a partir de las fuentes más recientes, necesita git desde Aquí o puede descargar una instantánea del código como un zip y descomprimirlo en su unidad de disco
- CMake
- Microsoft Visual Studio 2015
- Un montón de espacio libre - al menos un par de GB para estar seguro, dependiendo realmente de lo que quieras construir
Preparandose
- Me gusta mantener las cosas limpias, así que normalmente creo 3 carpetas así:
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
Si usa el método git,
- abrir un indicador de comando
- cambiar el directorio de trabajo
cd c:\vtk\src
- clonar el repositorio
git clone https://gitlab.kitware.com/vtk/vtk.git
. Esto podría tomar un tiempo dependiendo de la velocidad de su conexión a internet - Si está trabajando detrás de un proxy, necesitará configurar git para usarlo. Vea esta pregunta sobre cómo hacer eso.
Si usa el método zip, descomprima el código fuente en
c:\vtk\src
Configuración
- Iniciar la interfaz gráfica de usuario de CMake
- Seleccione
c:\vtk\src
paraWhere is the source code:
- Seleccione
c:\vtk\build
paraWhere to build the binaries:
- Presiona
Configure
y seleccionaVisual Studio 2015
como el generador requerido - Se le presentará una serie de opciones de configuración
- Generalmente uso la siguiente configuración para una construcción mínima
-
CMAKE_INSTALL_PREFIX
=c:\vtk\install
-
BUILD_SHARED_LIBS
marcado -
BUILD_DOCUMENTATION
marcar -
BUILD_TESTING
marcar -
CMAKE_CXX_MP_FLAG
marcado. Esto utilizará todos los núcleos de la CPU (en sistemas multinúcleo / multiprocesador) para acelerar la compilación
-
- Mantener pulsando
Configure
corregir cualquier error hasta que todas las entradas ROJAS se vuelvan BLANCAS - Hit
Generate
- Cerrar CMake GUI
edificio
- Si la generación fue exitosa debería haber
- Una solución de Visual Studio:
c:\vtk\build\vtk.sln
- Un montón de archivos de proyecto -
ALL_BUILD.vcxproj INSTALL.vcxproj vtkCompileTools.vcxproj VTKData.vcxproj ZERO_CHECK.vcxproj
- Una solución de Visual Studio:
- Puede compilar esto usando una línea de comandos o usando el IDE
- Prefiero la línea de comandos ya que generalmente es más rápida y usa menos RAM
- Usando la línea de comando
- Iniciar la
Developer Command Prompt For Visual Studio 2015
- Cambiar directorio de trabajo:
cd c:\vtk\build
- Ejecutar msbuild:
- para construcciones de depuración
-
msbuild /p:Configuration=Debug ALL_BUILD.vcxproj
-
msbuild /p:Configuration=Debug INSTALL.vcxproj
-
- para compilaciones de lanzamiento
-
msbuild /p:Configuration=Release ALL_BUILD.vcxproj
-
msbuild /p:Configuration=Release INSTALL.vcxproj
-
- para construcciones de depuración
- Iniciar la
- Usando el IDE
- Abra
VTK.sln
con Visual Studio 2015 yVTK.sln
elINSTALL.vcxproj
- Esta técnica suele ser más lenta, ya que el IDE comenzará a desarrollar una inteligencia para cada uno de los proyectos enumerados en la solución.
- Abra
-
c:\vtk\install
ahora debería tener algunas carpetas nuevas-
bin
# contiene los archivos dll -
lib
# contiene los archivos lib -
cmake
-
share
-
include
# contiene los archivos de encabezado
-
Usando la compilación
- Para usar VTK en un proyecto de Visual C ++, uno tiene que
- Configure la ruta de búsqueda del archivo del encabezado del compilador para incluir
c:\vtk\include\vtk-<version>
- Configure la ruta de búsqueda del archivo de la biblioteca del vinculador para incluir
c:\vtk\lib
- Configure el enlazador para vincular a los archivos
.lib
requeridos - Copie las DLL requeridas a la carpeta de salida
- Configure la ruta de búsqueda del archivo del encabezado del compilador para incluir
- He reunido un pequeño archivo de
c:\vtk\vtk.vsprops
para manejar las cuatro tareasc:\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>
El archivo vsprops anterior copia todas las dll disponibles en la carpeta
c:\vtk\bin
.Una forma alternativa de asegurarse de que se puedan ubicar las DLL es usar la variable de entorno PATH para la sesión de depuración y colocar la ruta de los binarios VTK como el primer directorio que se buscará al cargar las dependencias. El siguiente fragmento puede ser en lugar de la tarea
CopyVTKBinariesList
para hacer esto.<PropertyGroup> <LocalDebuggerEnvironment>PATH=$(VTK_BIN_DIR);%PATH%;$(LocalDebuggerEnvironment)</LocalDebuggerEnvironment> </PropertyGroup>
Para la implementación final, es posible que desee utilizar una herramienta como Dependency Walker para rastrear qué archivos DLL y sus dependencias se utilizan y agrupar solo aquellos para redistribuir.
Para usar el archivo de propiedades en un proyecto de Visual C ++, puede usar la herramienta Administrador de propiedades dentro de Visual Studio (Menú: Ver => Administrador de propiedades) o editar el vcxproj usando un editor de texto y agregar la siguiente línea
<Import Project="C:\vtk\vtk.vsprops" />
debajo de las otras importaciones del proyecto.
Limpiar
- Si desea recuperar algo de espacio en el disco, puede eliminar la carpeta
c:\vtk\build
pero la desventaja es que no puede depurar en vtk
Desinstalación
- Simplemente elimine la carpeta
c:\vtk
si ya no desea VTK
MacOSX y Unix:
- Instala la última versión de CMake disponible aquí
- Descarga el último VTK aquí .
- Cree un directorio de compilación para VTK
mkdir <path_to_build_directory
- Configure 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
ccmake <path_to_VTK_directory
- Ingrese al directorio de compilación y use
make -j
(no tiene que usar-j
pero la compilación es realmente larga. - Finalmente usar
make install