vtk учебник
Начало работы с vtk
Поиск…
замечания
В этом разделе представлен обзор того, что такое vtk, и почему разработчик может захотеть его использовать.
Следует также упомянуть любые крупные темы в vtk и ссылки на связанные темы. Поскольку Documentation for vtk является новым, вам может потребоваться создать начальные версии этих связанных тем.
Установка или настройка
Строительство и установка на Windows 7
Предпосылки
- Если вы хотите построить VTK из последних источников, вам нужно git from Here или вы можете загрузить моментальный снимок кода в виде 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
- Выберите
c:\vtk\src
дляWhere is the source code:
- Выберите
c:\vtk\build
дляWhere to build the binaries:
- Хит
Configure
и выбратьVisual Studio 2015
как необходимый генератор - Вам будет предложено несколько вариантов конфигурации
- Обычно я использую следующие настройки для минимальной сборки
-
CMAKE_INSTALL_PREFIX
=c:\vtk\install
-
BUILD_SHARED_LIBS
галочкой -
BUILD_DOCUMENTATION
-
BUILD_TESTING
-
CMAKE_CXX_MP_FLAG
. Это будет использовать все ядра ЦП (в многоядерных / многопроцессорных системах), чтобы ускорить сборку
-
- Удерживание удара
Configure
корректировки любых ошибок до тех пор, пока все КРАСНЫЕ записи не станут БЕЛАЯ - Hit
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
- Я предпочитаю командную строку, поскольку она, как правило, быстрее и использует меньше ОЗУ
- Использование командной строки
- Запустить
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
- Откройте
VTK.sln
с помощью Visual Studio 2015 и создайтеINSTALL.vcxproj
- Этот метод обычно медленнее, так как IDE начнет строить intellisense для каждого из проектов, перечисленных в решении
- Откройте
-
c:\vtk\install
теперь должны иметь несколько новых папок-
bin
# содержит файлы DLL -
lib
# содержит файлы lib -
cmake
-
share
-
include
# содержит файлы заголовков
-
Использование сборки
- Чтобы использовать VTK в проекте Visual C ++, нужно
- Настройте путь поиска файла заголовка компилятора, чтобы включить
c:\vtk\include\vtk-<version>
- Настройте путь поиска файла библиотеки компоновщика, чтобы включить
c:\vtk\lib
- Настройте компоновщик для ссылки на требуемые
.lib
файлы - Скопируйте необходимые библиотеки DLL в папку вывода
- Настройте путь поиска файла заголовка компилятора, чтобы включить
- Я собрал небольшой файл реквизита для обработки всех четырех задач
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 ++, вы можете использовать инструмент Property Manager в Visual Studio (Menu: View => Property Manager) или отредактировать vcxproj с помощью текстового редактора и добавить следующую строку
<Import Project="C:\vtk\vtk.vsprops" />
ниже других импортных проектов.
Убираться
- Если вы хотите восстановить некоторое дисковое пространство, вы можете удалить папку
c:\vtk\build
но недостатком является то, что вы не можете отлаживать vtk
Пробные
- Просто удалите папку
c:\vtk
если вы больше не хотите 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
или использовать графический интерфейс для этого с помощьюccmake <path_to_VTK_directory
- Войдите в каталог сборки и используйте
make -j
(вам не нужно использовать-j
но компиляция действительно длинная. - Наконец, используйте
make install