vtk 튜토리얼
vtk 시작하기
수색…
비고
이 섹션에서는 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\build
에c:\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
- Visual Studio 솔루션 :
- 명령 줄이나 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가 인텔리 센스를 작성하기 시작할 때 더 느립니다.
- Visual Studio 2015로
-
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 :
- CMake의 최신 버전을 여기에 설치 하십시오.
- 최신 VTK를 다운로드 하십시오 .
- VTK에 대한 빌드 디렉토리 만들기
mkdir <path_to_build_directory
-
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
- 빌드 디렉토리로 들어가서
make -j
사용한다. (당신은-j
를 사용할 필요가 없지만 컴파일은 실제로 길다. - 마지막으로
make install