vtk Handledning
Komma igång med vtk
Sök…
Anmärkningar
Det här avsnittet ger en översikt över vad vtk är, och varför en utvecklare kanske vill använda den.
Det bör också nämna alla stora ämnen inom vtk och länka till relaterade ämnen. Eftersom dokumentationen för vtk är ny kan du behöva skapa initialversioner av relaterade ämnen.
Installation eller installation
Bygga och installera på Windows 7
förutsättningar
- Om du vill bygga VTK från senaste källor behöver du git härifrån eller så kan du ladda ner en ögonblicksbild av koden som ett zip och packa upp på din hårddisk
- CMake
- Microsoft Visual Studio 2015
- Massor av ledigt utrymme - minst ett par GB för att vara på den säkra sidan, verkligen beroende på vad du vill bygga
Gör mig i ordning
- Jag gillar att hålla saker rena så jag brukar skapa tre mappar så:
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
Om du använder git-metoden,
- öppna en kommandotolk
- ändra arbetskatalogen
cd c:\vtk\src
- klona gitförvaret
git clone https://gitlab.kitware.com/vtk/vtk.git
. Det kan ta ett tag beroende på din internetanslutningshastighet - Om du arbetar bakom en proxy måste du ställa in git för att använda den. Se denna fråga om hur du gör det.
Om du använder zip-metoden, packa upp källkoden i
c:\vtk\src
Konfiguration
- Starta CMake GUI
- Välj
c:\vtk\src
förWhere is the source code:
- Välj
c:\vtk\build
förWhere to build the binaries:
- Tryck på
Configure
och väljVisual Studio 2015
som önskad generator - Du kommer att presenteras med ett antal konfigurationsalternativ
- Jag använder i allmänhet följande inställningar för en minimal byggnad
-
CMAKE_INSTALL_PREFIX
=c:\vtk\install
-
BUILD_SHARED_LIBS
-
BUILD_DOCUMENTATION
avmarkerad -
BUILD_TESTING
avmarkerad -
CMAKE_CXX_MP_FLAG
. Detta kommer att använda alla CPU-kärnor (på fler- / multiprocessorsystem) för att påskynda byggandet
-
- Fortsätt att träffa
Configure
korrigera eventuella fel tills alla RÖDA poster är VIT - Hit
Generate
- Stäng CMake GUI
Byggnad
- Om generationen lyckades borde det finnas
- En Visual Studio-lösning:
c:\vtk\build\vtk.sln
- Ett gäng projektfiler -
ALL_BUILD.vcxproj INSTALL.vcxproj vtkCompileTools.vcxproj VTKData.vcxproj ZERO_CHECK.vcxproj
- En Visual Studio-lösning:
- Du kan bygga detta med antingen från en kommandorad eller med IDE
- Jag föredrar kommandoraden eftersom den i allmänhet är snabbare och använder mindre RAM
- Använd kommandoraden
- Starta
Developer Command Prompt For Visual Studio 2015
- Ändra arbetskatalog:
cd c:\vtk\build
- Starta msbuild:
- 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
-
- för debug builds
- Starta
- Använda IDE
- Öppna
VTK.sln
med Visual Studio 2015 och byggINSTALL.vcxproj
- Denna teknik är vanligtvis långsammare eftersom IDE börjar bygga intelligens för vart och ett av de projekt som anges i lösningen
- Öppna
-
c:\vtk\install
bör nu ha några nya mappar-
bin
# innehåller dll-filerna -
lib
# innehåller lib-filerna -
cmake
-
share
-
include
# innehåller rubrikfilerna
-
Använda bygga
- För att använda VTK i ett Visual C ++ -projekt måste man
- Konfigurera sökvägen för kompilatorhuvudfilen så att den inkluderar
c:\vtk\include\vtk-<version>
- Konfigurera sökvägen för länkarkivets filsökning så att den inkluderar
c:\vtk\lib
- Konfigurera länken för att länka till de nödvändiga
.lib
filerna - Kopiera nödvändiga DLL-filer till utmatningsmappen
- Konfigurera sökvägen för kompilatorhuvudfilen så att den inkluderar
- Jag har satt ihop en liten rekvisitionsfil för att hantera alla de fyra uppgifterna
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>
Ovanstående vsprops-fil kopierar alla tillgängliga dlls i mappen
c:\vtk\bin
.Ett alternativt sätt att se till att DLL-filerna kan hittas är att använda förändra PATH-miljövariabeln för felsökningssessionen och sätta VTK-binärvägen som den första katalogen som ska sökas när man laddar beroenden. Nedanstående fragment kan vara i stället för
CopyVTKBinariesList
uppgiften för att göra detta.<PropertyGroup> <LocalDebuggerEnvironment>PATH=$(VTK_BIN_DIR);%PATH%;$(LocalDebuggerEnvironment)</LocalDebuggerEnvironment> </PropertyGroup>
För den slutliga distributionen kanske du vill använda ett verktyg som Dependency Walker för att spåra vilka dlls och deras beroenden som används och bara buntar bara de för omfördelning.
För att använda rekvisitionsfilen i ett Visual C ++ -projekt kan du antingen använda Property Manager-verktyget i Visual Studio (Menu: View => Property Manager) eller redigera vcxproj med hjälp av en textredigerare och lägga till följande rad
<Import Project="C:\vtk\vtk.vsprops" />
under den andra projektimporten.
Städar upp
- Om du vill återställa lite diskutrymme kan du ta bort mappen
c:\vtk\build
men nackdelen är att du inte kan felsöka till vtk
Avinstallation
- Radera helt enkelt
c:\vtk
mappen om du inte vill VTK längre
MacOSX och Unix:
- Installera den senaste versionen av CMake som finns tillgänglig här
- Ladda ner den senaste VTK här .
- Skapa en build-katalog för VTK
mkdir <path_to_build_directory
- Konfigurera med
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
eller använda GUI för att göra det medccmake <path_to_VTK_directory
- Gå in i build-katalogen och använd
make -j
(du behöver inte använda-j
men sammanställningen är verkligen lång. - Använd slutligen
make install