VTK のコンパイル2020年9月15日 | |
はじめにVTK のコンパイルについてのメモ。 環境
メモVTK を PyQt/PySide で使いたかった。したがって、以下では Qt と Python を有効にしようといろいろやっているが、Qt の設定はいらなかったぽい。 ポイント
Ubuntu 16.04 LTS の VTK 7.1.1 の設定が最終版。 ソースコードの入手こちら からソースコードを入手する。 Ubuntu 16.04 LTS
VTK 8.2.0準備。 $ mkdir build $ tar xvzf VTK-8.2.0.tar.gz -C build $ cd build/VTK-8.2.0 $ mkdir VTK-build $ cd VTK-build ここでは、Qt5 (Anaconda3 のもの) とともに利用するものとし、$HOME/opt 以下にインストールすることにする。 $ cmake .. \ -DVTK_QT_VERSION:STRING=5 \ -DQT_QMAKE_EXECUTABLE:PATH=$HOME/anaconda3/bin/qmake \ -DVTK_Group_Qt:BOOL=ON \ -DCMAKE_PREFIX_PATH:PATH=/usr/bin/cmake \ -DBUILD_SHARED_LIBS:BOOL=ON \ -DCMAKE_INSTALL_PREFIX=$HOME/opt/VTK-8.2.0 ビルド & インストール。 $ make -j4 $ make install インストールディレクトリを設定。 ~/.bashrc export VTK_DIR=$HOME/opt/VTK-8.2.0 VTK 7.1.1古い OpenGL ライブラリを使う場合は、VTK 7 を使う。 準備 $ mkdir build $ tar xvzf VTK-7.1.1.tar.gz -C build $ cd build/VTK-7.1.1 $ mkdir VTK-build $ cd VTK-build 古い OpenGL を使うように指定している。Python Wrapping を有効にして、Python 3.7 を用いる。Anaconda3 を有効にしておく。 $ cmake .. \ -DVTK_RENDERING_BACKEND:STRING=OpenGL \ -DVTK_WRAP_PYTHON:BOOL=ON \ -DVTK_PYTHON_VERSION:STRING=3.7 \ -DBUILD_SHARED_LIBS:BOOL=ON \ -DCMAKE_INSTALL_PREFIX:PATH=$HOME/opt/VTK-7.1.1 ビルド。 $ make -j4 エラーが出た。 /home/xxxx/build/VTK-7.1.1/Wrapping/PythonCore/vtkPythonArgs.cxx: In instantiation of ‘bool vtkPythonGetStringValue(PyObject*, T*&, const char*) [with T = char; PyObject = _object]’: /home/xxxx/build/VTK-7.1.1/Wrapping/PythonCore/vtkPythonArgs.cxx:287:66: required from here /home/xxxx/build/VTK-7.1.1/Wrapping/PythonCore/vtkPythonArgs.cxx:105:25: error: invalid conversion from ‘const char*’ to ‘char*’ [-fpermissive] a = PyUnicode_AsUTF8(o); 以下のように修正。 a = const_cast<char*>(PyUnicode_AsUTF8(o)); インストール。 $ make install ~/.bashrc に以下のように追加する。 PYTHONPATH=$HOME/opt/VTK-7.1.1/lib/python3.7/site-packages:$PYTHONPATH LD_LIBRARY_PATH=$HOME/opt/VTK-7.1.1/lib:$LD_LIBRARY_PATH CentOS 6.5gcc のセットアップgcc バージョンが足りないので、まず gcc を用意する。 $ gcc --version gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-23) SCL (Software Collections) を入れる。 $ sudo yum install scl-utils $ cd /etc/yum.repos.d/ $ sudo wget http://people.centos.org/tru/devtools-2/devtools-2.repo $ sudo yum install devtoolset-2-gcc devtoolset-2-binutils $ sudo yum install devtoolset-2-gcc-c++ devtoolset-2-gcc-gfortran $ scl enable devtoolset-2 bash $ gcc --version gcc (GCC) 4.8.2 20140120 (Red Hat 4.8.2-15) ~/.bashrc に以下の行を追加する。 . scl_source enable devtoolset-2 参考 VTK 8.2.0準備。 $ mkdir build $ tar xvzf VTK-8.2.0.tar.gz -C build $ cd build/VTK-8.2.0 $ mkdir VTK-build $ cd VTK-build VTK のコンパイルに必要なものをインストールする。 $ sudo yum install mesa-libGL-devel $ sudo yum install libXt-devel CMake には 3.17.1 を用いる。Qt5 には Miniconda3 のものを用いる。 $ cmake .. \ -DVTK_QT_VERSION:STRING=5 \ -DQt5_DIR:PATH=$HOME/miniconda3/pkgs/qt-5.12.5-hd8c4c69_1/lib/cmake/Qt5 \ -DQT_QMAKE_EXECUTABLE:PATH=$HOME/miniconda3/bin/qmake \ -DVTK_Group_Qt:BOOL=ON \ -DCMAKE_PREFIX_PATH:PATH=$HOME/opt/cmake-3.17.1/bin/cmake \ -DBUILD_SHARED_LIBS:BOOL=ON \ -DCMAKE_INSTALL_PREFIX=$HOME/opt/VTK-8.2.0 $ LD_LIBRARY_PATH=$HOME/miniconda3/lib:$LD_LIBRARY_PATH make -j4 $ make install ~/.bashrc に以下の設定を追加。 PYTHONPATH=$HOME/opt/VTK-8.2.0/lib64/python3.7/site-packages:$PYTHONPATH LD_LIBRARY_PATH=$HOME/opt/VTK-8.2.0/lib64:$LD_LIBRARY_PATH VTK 7.1.1古い OpenGL ライブラリを使う場合は、VTK 7 を使う。 準備 $ mkdir build $ tar xvzf VTK-7.1.1.tar.gz -C build $ cd build/VTK-7.1.1 $ mkdir VTK-build $ cd VTK-build 古い OpenGL を使うように指定している。Python Wrapping を有効にして、Python 3.7 を用いる。Anaconda を有効にしておく。 $ cmake .. \ -DVTK_RENDERING_BACKEND:STRING=OpenGL \ -DVTK_QT_VERSION:STRING=5 \ -DQt5_DIR:PATH=$HOME/miniconda3/pkgs/qt-5.12.5-hd8c4c69_1/lib/cmake/Qt5 \ -DQT_QMAKE_EXECUTABLE:PATH=$HOME/miniconda3/bin/qmake \ -DVTK_Group_Qt:BOOL=ON \ -DVTK_WRAP_PYTHON:BOOL=ON \ -DVTK_PYTHON_VERSION:STRING=3.7 \ -DCMAKE_PREFIX_PATH:PATH=$HOME/opt/cmake-3.17.1/bin/cmake \ -DBUILD_SHARED_LIBS:BOOL=ON \ -DCMAKE_INSTALL_PREFIX:PATH=$HOME/opt/VTK-7.1.1 $ LD_LIBRARY_PATH=$HOME/miniconda3/lib:$LD_LIBRARY_PATH make -j4 $ make install エラーが出る。 /home/xxxx/build/VTK-7.1.1/Wrapping/PythonCore/vtkPythonArgs.cxx: In instantiation of ‘bool vtkPythonGetStringValue(PyObject*, T*&, const char*) [with T = char; PyObject = _object]’: /home/xxxx/build/VTK-7.1.1/Wrapping/PythonCore/vtkPythonArgs.cxx:287:66: required from here /home/xxxx/build/VTK-7.1.1/Wrapping/PythonCore/vtkPythonArgs.cxx:105:27: error: invalid conversion from ‘const char*’ to ‘char*’ [-fpermissive] a = PyUnicode_AsUTF8(o); 以下のように修正する。 a = const_cast<char*>(PyUnicode_AsUTF8(o)); ~/.bashrc に以下のように追加する。 PYTHONPATH=$HOME/opt/VTK-7.1.1/lib/python3.7/site-packages:$PYTHONPATH LD_LIBRARY_PATH=$HOME/opt/VTK-7.1.1/lib:$LD_LIBRARY_PATH Windows 10
VTK 7.1.1Python なしソースディレクトリの中で実行。 >mkdir VTK-build >cd VTK-build >cmake .. -G "Visual Studio 15 2017 Win64" ^ -DVTK_RENDERING_BACKEND:STRING=OpenGL ^ -DVTK_WRAP_PYTHON:BOOL=ON ^ -DBUILD_SHARED_LIBS:BOOL=ON ^ -DCMAKE_INSTALL_PREFIX:PATH=C:\work\VTK-7.1.1-bin ビルド。 >msbuild VTK.sln /p:configuration=release /p:platform=x64 /m:4 >msbuild INSTALL.vcxproj /p:configuration=release /p:platform=x64 Python あり>mkdir VTK-py-build >cd VTK-py-build >cmake .. -G "Visual Studio 15 2017 Win64" ^ -DVTK_RENDERING_BACKEND:STRING=OpenGL ^ -DVTK_WRAP_PYTHON:BOOL=ON ^ -DBUILD_SHARED_LIBS:BOOL=ON ^ -DVTK_WRAP_PYTHON:BOOL=ON ^ -DVTK_PYTHON_VERSION:STRING=3.7 ^ -DCMAKE_INSTALL_PREFIX:PATH=C:\work\VTK-7.1.1-bin ビルド。 >msbuild VTK.sln /p:configuration=release /p:platform=x64 /m:4 >msbuild INSTALL.vcxproj /p:configuration=release /p:platform=x64 エラー。 vtk-7.1.1\wrapping\pythoncore\vtkpythonargs.cxx(105): error C2440: '=': 'const char *' から 'T *' に変換できません。 以下のように修正。 // a = PyUnicode_AsUTF8(o); a = const_cast<char*>(PyUnicode_AsUTF8(o)); 参考 | |
PENGUINITIS |