수색…


비고

이 섹션에서는 vtk의 개념과 개발자가 왜 그것을 사용하고 싶어하는지에 대한 개요를 제공합니다.

또한 vtk 내의 큰 주제를 언급하고 관련 주제에 링크해야합니다. vtk의 문서는 새로운 것이므로 관련 주제의 초기 버전을 만들어야 할 수도 있습니다.

설치 또는 설정

Windows 7에서의 설치 및 설치

선결 요건

  • 최신 소스에서 VTK를 빌드하려면 여기 에서 git이 필요하거나 zip으로 코드의 스냅 샷을 다운로드하고 디스크 드라이브에 압축을 풉니 다.
  • CMake
  • Microsoft Visual Studio 2015
  • 충분한 여유 공간 - 적어도 GB를 안전한면에 두어야합니다. 실제로 빌드하려는 대상에 따라 다릅니다.

준비하기

  • 나는 보통 다음과 같이 3 개의 폴더를 만들도록 물건을 깨끗하게 유지하고 싶다 :
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
  • git 메소드를 사용하는 경우,

    • 명령 프롬프트 열기
    • 작업 디렉토리 변경 cd c:\vtk\src
    • git 저장소 git clone https://gitlab.kitware.com/vtk/vtk.git . 인터넷 연결 속도에 따라 다소 시간이 걸릴 수 있습니다.
    • 프록시를 사용하는 중이라면 git을 사용하도록 설정해야합니다. 이를 수행하는 방법에 대한 질문을 참조하십시오.
  • zip 메소드를 사용하는 경우 소스 코드를 c:\vtk\src 압축을 풉니 다.

구성

  • CMake GUI 실행
  • Where is the source code: c:\vtk\src 를 선택하십시오 Where is the source code:
  • Where to build the binaries: c:\vtk\buildc:\vtk\build 를 선택하십시오 Where to build the binaries:
  • Configure 하고 필요한 생성기로 Visual Studio 2015 를 선택합니다.
  • 다양한 구성 옵션이 제공됩니다.
  • 일반적으로 최소한의 빌드에는 다음 설정을 사용합니다.
    • CMAKE_INSTALL_PREFIX = c:\vtk\install
    • BUILD_SHARED_LIBS 체크 BUILD_SHARED_LIBS
    • BUILD_DOCUMENTATION
    • BUILD_TESTING
    • CMAKE_CXX_MP_FLAG 체크 표시가되어 있습니다. 이렇게하면 모든 CPU 코어 (멀티 코어 / 멀티 프로세서 시스템에서)를 사용하여 빌드 속도를 높일 수 있습니다
  • 적중 유지 모든 빨간색 항목이 흰색이 될 때까지 오류를 수정하도록 Configure 합니다.
  • 히트 Generate
  • 닫기 CMake GUI

건물

  • 세대가 성공적 이었다면
    • Visual Studio 솔루션 :
      c:\vtk\build\vtk.sln
      
    • 프로젝트 파일의 무리 -
      ALL_BUILD.vcxproj
      INSTALL.vcxproj
      vtkCompileTools.vcxproj
      VTKData.vcxproj
      ZERO_CHECK.vcxproj
      
  • 명령 줄이나 IDE를 사용하여 빌드 할 수 있습니다.
  • 나는 일반적으로 더 빠르며 적은 RAM을 사용하므로 명령 행을 선호한다.
  • 명령 줄 사용
    • Developer Command Prompt For Visual Studio 2015 시작
    • 작업 디렉토리 변경 : cd c:\vtk\build
    • msbuild 시작 :
      • 디버그 빌드 용
        • msbuild /p:Configuration=Debug ALL_BUILD.vcxproj
        • msbuild /p:Configuration=Debug INSTALL.vcxproj
      • 릴리스 빌드 용
        • msbuild /p:Configuration=Release ALL_BUILD.vcxproj
        • msbuild /p:Configuration=Release INSTALL.vcxproj
  • IDE 사용
    • Visual Studio 2015로 VTK.sln 을 열고 INSTALL.vcxproj 빌드하십시오.
    • 이 기술은 일반적으로 솔루션에 나열된 각 프로젝트에 대해 IDE가 인텔리 센스를 작성하기 시작할 때 더 느립니다.
  • c:\vtk\install 에는 이제 새로운 폴더가 있어야합니다.
    • bin #에는 dll 파일이 들어 있습니다.
    • lib #에는 lib 파일이 들어 있습니다.
    • cmake
    • share
    • include # 헤더 파일을 포함

빌드 사용하기

  • Visual C ++ 프로젝트에서 VTK를 사용하려면
    • 컴파일러 헤더 파일 검색 경로에 c:\vtk\include\vtk-<version> 을 포함하도록 구성하십시오 c:\vtk\include\vtk-<version>
    • c:\vtk\lib 를 포함하도록 링커 라이브러리 파일 검색 경로를 구성합니다 c:\vtk\lib
    • 필수 .lib 파일에 연결하도록 링커를 구성하십시오.
    • 필요한 DLL을 출력 폴더에 복사하십시오.
  • 모든 네 개의 작업 c:\vtk\vtk.vsprops 를 처리하기 위해 작은 소품 파일을 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>
  • 위의 vsprops 파일은 사용 가능한 모든 dll을 c:\vtk\bin 폴더에 복사합니다.

  • DLL을 찾을 수있는 다른 방법은 디버깅 세션에 PATH 환경 변수를 변경하고 VTK 바이너리 경로를 종속성을로드 할 때 검색 할 첫 번째 디렉토리로 지정하는 것입니다. 아래 코드는 CopyVTKBinariesList 태스크 대신이 작업을 수행 할 수 있습니다.

    <PropertyGroup>
      <LocalDebuggerEnvironment>PATH=$(VTK_BIN_DIR);%PATH%;$(LocalDebuggerEnvironment)</LocalDebuggerEnvironment>
    </PropertyGroup>
    
  • 최종 배포의 경우 Dependency Walker 와 같은 도구를 사용하여 dll과 해당 종속성이 사용 된 것을 추적하고 재배포 할 때만 해당 번들을 제공 할 수 있습니다.

  • Visual C ++ 프로젝트에서 props 파일을 사용하려면 Visual Studio 내에서 Property Manager 도구 (Menu : View => Property Manager)를 사용하거나 텍스트 편집기를 사용하여 vcxproj를 편집하고 다음 줄을 추가 할 수 있습니다. <Import Project="C:\vtk\vtk.vsprops" /> 다른 프로젝트 가져 오기 아래에 추가하십시오.

청소

  • 일부 디스크 공간을 복구하고 c:\vtk\build 폴더를 삭제할 수 있지만 단점은 vtk로 디버깅 할 수 없다는 것입니다

제거

  • 더 이상 VTK를 사용하지 c:\vtk 려면 c:\vtk 폴더를 삭제하십시오 c:\vtk

MacOSX 및 Unix :

  1. CMake의 최신 버전을 여기에 설치 하십시오.
  2. 최신 VTK를 다운로드 하십시오 .
  3. VTK에 대한 빌드 디렉토리 만들기 mkdir <path_to_build_directory
  4. 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 하거나 GUI를 사용하여 ccmake <path_to_VTK_directory
  5. 빌드 디렉토리로 들어가서 make -j 사용한다. (당신은 -j 를 사용할 필요가 없지만 컴파일은 실제로 길다.
  6. 마지막으로 make install


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow