Skip to content

Instantly share code, notes, and snippets.

@UnaNancyOwen
Last active May 12, 2021 22:07
Show Gist options
  • Save UnaNancyOwen/77d61f9f21376c9b59fc to your computer and use it in GitHub Desktop.
Save UnaNancyOwen/77d61f9f21376c9b59fc to your computer and use it in GitHub Desktop.
Building QVTK with Visual Studio

Building QVTK(VTK6+Qt5) with Visual Studio

Download

  1. VTK 6.3.0(VTK-6.3.0.zip)をダウンロードしてファイルを解凍する。(C:\VTK-6.3.0) http://www.vtk.org/VTK/resources/software.html#latestcand
    https://github.com/Kitware/VTK/tree/v6.3.0

  2. 以下の手順を参考にQt 5.5.1(qt-everywhere-opensource-src-5.5.1.zip)をビルドする。   https://gist.github.com/UnaNancyOwen/dbc0506332caeb906c14

CMake

  1. Qt 5.5以降はQtWebKitが非推奨となり、Qt 5.6からは削除されます。
    そのため、VTKの以下のフォルダを削除します。
    * VTK 6.3.0ではこの手順が必要ですが、以降のバージョンでは不要になる可能性があります。

    • VTK-6.3.0\GUISupport\QtWebkit
  2. ソースコードの入力先とソリューションファイルの出力先を指定する。

    • Where is the source code: C:\VTK-6.3.0
    • Where is build the binaries: C:\VTK-6.3.0\build
  3. [Configure]を押してターゲットとなるVisual Studioを選択する。

  4. 各種設定を行う。
    (GroupedとAdvancedにチェックを入れるとわかりやすい。)
    Ungrouped Entries

    • QT_QMAKE_EXECUTABLE C:/Program Files/Qt/bin/qmake.exe
    • Qt5_DIR C:/Program Files/Qt/lib/cmake/Qt5
    • Qt5Core_DIR C:/Program Files/Qt/lib/cmake/Qt5Core
    • Qt5Designer_DIR C:/Program Files/Qt/lib/cmake/Qt5Designer
    • Qt5Gui_DIR C:/Program Files/Qt/lib/cmake/Qt5Gui
    • Qt5OpenGL_DIR C:/Program Files/Qt/lib/cmake/Qt5OpenGL
    • Qt5Sql_DIR C:/Program Files/Qt/lib/cmake/Qt5Sql
    • Qt5UiPlugin_DIR C:/Program Files/Qt/lib/cmake/Qt5UiPlugin
    • Qt5Widgets_DIR C:/Program Files/Qt/lib/cmake/Qt5Widgets
    • Qt5Xml_DIR C:/Program Files/Qt/lib/cmake/Qt5Xml
    • VTK_INSTALL_QT_PLUGIN_DIR ${CMAKE_INSTALL_PREFIX}/${VTK_INSTALL_QT_DIR}

    BUILD

    • BUILD_SHAREED_LIBS ☐ (cunheck)
    • BUILD_TESTING ☐ (uncheck)

    CMAKE

    • CMAKE_CONFIGURATION_TYPES Debug;Release
    • CMAKE_CXX_MP_FLAG ☑ (check)
    • CMAKE_INSTALL_PREFIX C:\Program Files\VTK (or C:\Program Files (x86)\VTK)

    Module
    * VTK/VTK_Group_Qtにチェックを入れるとまとめて指定される。

    • Module_vtkGUISupportQt ☑ (check)
    • Module_vtkGUISupportQtOpenGL ☑ (check)
    • Module_vtkGUISupportQtSQL ☑ (check)
    • Module_vtkRenderingQt ☑ (check)
    • Module_vtkViewsQt ☑ (check)

    OPENGL

    • OPENGL_gl_LIBRARY opengl
    • OPENGL_glu_LIBRARY glu32

    VTK

    • VTK_Group_Qt ☑ (check)
    • VTK_INSTALL_QT_PLUGIN_DIR ${CMAKE_INSTALL_PREFIX}/${VTK_INSTALL_QT_DIR}
    • VTK_QT_VERSION 5
  5. [Add Entry]を押して以下の設定を追加する。

    Name: CMAKE_DEBUG_POSTFIX
    Type: STRING
    Value: -gd
    Description:
    * Debugビルドの生成ファイルのファイル名(最後尾)に付加する文字列。
  6. [Generate]を押してソリューションファイルを出力する。

Build

  1. Visual Studioを管理者権限で起動してVTKのソリューションファイル(C:\VTK-6.3.0\build\VTK.sln)を開く。
    (Visual Studioを管理者権限で起動しないとINSTALLが失敗する。)

  2. VTKをビルドする。(ALL_BUILD)

    1. ソリューションの構成(Debug, Release)を設定する。
    2. ソリューションエクスプローラーからALL_BUILDプロジェクトを選択する。
    3. [ビルド]>[ソリューションのビルド]を押してVTKをビルドする。
  3. VTKをインストールする。(INSTALL)

    1. 以下のファイルを修正する。
      • build\GUISupport\Qt\PluginInstall.cmake
        5 line
      IF(BUILD_TYPE MATCHES Debug)
        SET(VTK_INSTALL_QT_PLUGIN_FILE "QVTKWidgetPlugin-gd.dll")
      ELSE()
        SET(VTK_INSTALL_QT_PLUGIN_FILE "QVTKWidgetPlugin.dll")
      ENDIF()
      
    2. ソリューションエクスプローラーからINSTALLプロジェクトを選択する。
    3. [ビルド]>[プロジェクトのみ]>[INSTALLのみをビルド]を押してVTKをインストールする。
      CMAKE_INSTALL_PREFIXで指定した出力先へ必要なファイルがコピーされる。

Environment Variable

  1. 環境変数VTK_DIRを作成してVTKのパス(C:\Program Files\VTK)を設定する。

  2. 環境変数QTDIRを作成してQtのパス(C:\Program Files\Qt (or C:\Program Files (x86)\Qt))を設定する。

  3. 環境変数Pathに;%VTK_DIR%\bin;%QTDIR%\binを追加する。

Building QVTK(VTK7+Qt5) with Visual Studio

Download

  1. VTK 7.1.0(VTK-7.1.0.zip)をダウンロードしてファイルを解凍する。(C:\VTK-7.1.0) http://www.vtk.org/VTK/resources/software.html#latestcand
    https://github.com/Kitware/VTK/tree/v7.1.0

  2. Qt 5.8.0(qt-opensource-windows-x86-msvc2015_64-5.8.0.exe)をダウンロードしてインストールする。(C:\Qt\Qt 5.8.0)   https://www.qt.io/download-open-source/

CMake

  1. ソースコードの入力先とソリューションファイルの出力先を指定する。

    • Where is the source code: C:\VTK-7.1.0
    • Where is build the binaries: C:\VTK-7.1.0\build
  2. [Configure]を押してターゲットとなるVisual Studioを選択する。

  3. 各種設定を行う。
    (GroupedとAdvancedにチェックを入れるとわかりやすい。)
    Ungrouped Entries

    • QT_QMAKE_EXECUTABLE C:/Qt/Qt5.8.0/5.8/msvc2015_64/bin/qmake.exe (or C:/Qt/Qt5.8.0/5.8/msvc2015/bin/qmake.exe)
    • Qt5_DIR C:/Qt/Qt5.8.0/5.8/msvc2015_64/lib/cmake/Qt5 (or C:/Qt/Qt5.8.0/5.8/msvc2015/lib/cmake/Qt5)
    • Qt5Core_DIR C:/Qt/Qt5.8.0/5.8/msvc2015_64/lib/cmake/Qt5Core (or C:/Qt/Qt5.8.0/5.8/msvc2015/lib/cmake/Qt5Core)
    • Qt5Gui_DIR C:/Qt/Qt5.8.0/5.8/msvc2015_64/lib/cmake/Qt5Gui (or C:/Qt/Qt5.8.0/5.8/msvc2015/lib/cmake/Qt5Gui)
    • Qt5OpenGL_DIR C:/Qt/Qt5.8.0/5.8/msvc2015_64/lib/cmake/Qt5OpenGL (or C:/Qt/Qt5.8.0/5.8/msvc2015/lib/cmake/Qt5OpenGL)
    • Qt5Sql_DIR C:/Qt/Qt5.8.0/5.8/msvc2015_64/lib/cmake/Qt5Sql (or C:/Qt/Qt5.8.0/5.8/msvc2015/lib/cmake/Qt5Sql)
    • Qt5Widgets_DIR C:/Qt/Qt5.8.0/5.8/msvc2015_64/lib/cmake/Qt5Widgets (or C:/Qt/Qt5.8.0/5.8/msvc2015/lib/cmake/Qt5Widgets)

    BUILD

    • BUILD_SHAREED_LIBS ☐ (cunheck)
    • BUILD_TESTING ☐ (uncheck)

    CMAKE

    • CMAKE_CONFIGURATION_TYPES Debug;Release
    • CMAKE_CXX_MP_FLAG ☑ (check)
    • CMAKE_INSTALL_PREFIX C:\Program Files\VTK (or C:\Program Files (x86)\VTK)

    OPENGL

    • OPENGL_gl_LIBRARY opengl
    • OPENGL_glu_LIBRARY glu32

    VTK

    • VTK_Group_Qt ☑ (check)
    • VTK_QT_VERSION 5
    • VTK_RENDERING_BACKEND OpenGL
  4. [Add Entry]を押して以下の設定を追加する。

    Name: CMAKE_DEBUG_POSTFIX
    Type: STRING
    Value: -gd
    Description:
    * Debugビルドの生成ファイルのファイル名(最後尾)に付加する文字列。
  5. [Generate]を押してソリューションファイルを出力する。

Build

  1. Visual Studioを管理者権限で起動してVTKのソリューションファイル(C:\VTK-7.1.0\build\VTK.sln)を開く。
    (Visual Studioを管理者権限で起動しないとINSTALLが失敗する。)

  2. VTKをビルドする。(ALL_BUILD)

    1. ソリューションの構成(Debug, Release)を設定する。
    2. ソリューションエクスプローラーからALL_BUILDプロジェクトを選択する。
    3. [ビルド]>[ソリューションのビルド]を押してVTKをビルドする。
  3. VTKをインストールする。(INSTALL)

    1. ソリューションエクスプローラーからINSTALLプロジェクトを選択する。
    2. [ビルド]>[プロジェクトのみ]>[INSTALLのみをビルド]を押してVTKをインストールする。
      CMAKE_INSTALL_PREFIXで指定した出力先へ必要なファイルがコピーされる。

QVTKWidgetPlugin

QVTKWidgetPluginは静的リンクライブラリを生成する設定の場合にはプロジェクトが生成されません。
一時的に動的リンクライブラリを生成する設定でソリューションファイルを出力、QVTKWidgetPluginを生成します。   (QVTKWidgetPlugin以外のライブラリは静的リンクライブラリでも構いません。)

  1. CMakeでBUILD_SHAREED_LIBSにチェックを入れてプロジェクトを生成する。  

  2. VTKのソリューションファイル(C:\VTK-7.1.0\build\VTK.sln)を開く。

  3. QVTKWidgetPluginのプロジェクトのみRelease構成でビルドする。
    ビルドが成功すると以下の場所にQVTKWidgetPluginが生成される。

    • C:\VTK-7.1.0\build\bin\Release\QVTKWidgetPlugin.dll
    • C:\VTK-7.1.0\build\lib\Release\QVTKWidgetPlugin.lib
  4. QVTKWidgetPluginを以下の場所にコピーする。

    • C:\Qt\Qt5.8.0\5.8\msvc2015_64\plugins\designer

Environment Variable

  1. 環境変数VTK_DIRを作成してVTKのパス(C:\Program Files\VTK)を設定する。

  2. 環境変数QTDIRを作成してQtのパス(C:\Qt\Qt5.8.0\5.8\msvc2015_64 (or C:\Qt\Qt5.8.0\5.8\msvc2015))を設定する。

  3. 環境変数Pathに;%QTDIR%\binを追加する。

@xiaoxie5002
Copy link

Why OPENGL_gl_LIBRARY == opengl , not opengl32???

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment