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ör Where is the source code:
  • Välj c:\vtk\build för Where to build the binaries:
  • Tryck på Configure och välj Visual 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
      
  • 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
  • Använda IDE
    • Öppna VTK.sln med Visual Studio 2015 och bygg INSTALL.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
  • 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
  • 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:

  1. Installera den senaste versionen av CMake som finns tillgänglig här
  2. Ladda ner den senaste VTK här .
  3. Skapa en build-katalog för VTK mkdir <path_to_build_directory
  4. 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 med ccmake <path_to_VTK_directory
  5. Gå in i build-katalogen och använd make -j (du behöver inte använda -j men sammanställningen är verkligen lång.
  6. Använd slutligen make install


Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow