サーチ…


備考

このセクションでは、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_DOCUMENTATION unticked
    • BUILD_TESTING unticked
    • 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をビルドしINSTALL.vcxproj
    • この方法は、IDEがソリューションにリストされている各プロジェクトのインテリセンスを構築し始めるため、通常は遅くなります
  • c:\vtk\install新しいフォルダが追加されるはずです
    • bin #にはdllファイルが含まれています
    • lib #にはlibファイルが含まれています
    • cmake
    • share
    • include #はヘッダファイルが含まれています

ビルドの使用

  • Visual C ++プロジェクトでVTKを使用するには、
    • コンパイラのヘッダーファイルの検索パスにc:\vtk\include\vtk-<version>を含めるように設定します。
    • c:\vtk\libを含むようにリンカー・ライブラリー・ファイル検索パスを構成します。
    • 必要な.libファイルにリンクするようにリンカーを構成する
    • 必要なDLLを出力フォルダにコピーする
  • 私はすべての4つのタスク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>
    
  • 最終的な展開のために、 依存関係ウォーカーのようなツールを使用して、どのDLLとそれらの依存関係が使用されているかを追跡し、再配布用のものだけをバンドルすることができます。

  • Visual C ++プロジェクトでpropsファイルを使用するには、Visual Studioでプロパティマネージャツール(メニュー:表示=>プロパティマネージャ)を使用するか、vcxprojをテキストエディタで編集し、次の行を追加します。 <Import Project="C:\vtk\vtk.vsprops" />他のプロジェクトインポートの下に<Import Project="C:\vtk\vtk.vsprops" />します。

清掃

  • ディスクスペースを回復したい場合は、 c:\vtk\buildフォルダを削除できますが、vtkにデバッグできないという欠点があります

アンインストール

  • もう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使用make install


Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow