PositionBasedDynamics のコンパイル2017年1月20日 | |
はじめにSPlisHSPlasH も用いられている剛体計算の Position Based Dynamics (PBD) コード PositionBasedDynamics のコンパイルについてのメモ。 バージョン
PositionBasedDynamics のコンパイルパッケージの展開。 $ mkdir build $ tar xvzf PositionBasedDynamics-1.6.0.tar.gz -C build $ cd build/PositionBasedDynamics-1.6.0 コンパイル。 $ mkdir build $ cd build $ cmake .. $ make エラーで止まった。 [ 10%] Building CXX object discregrid/CMakeFiles/Discregrid.dir/src/discrete_grid.cpp.o ... /usr/include/c++/5/bits/c++0x_warning.h:32:2: error: #error This file requires compiler and library support for the ISO C++ 2011 standard. This support must be enabled with the -std=c++11 or -std=gnu++11 compiler options. #error This file requires compiler and library support \ extern/Discregrid/src/ExternalProject_Discregrid/CMakeLists.txt に以下を追加。 set (CMAKE_CXX_STANDARD 11) またエラー。 [ 67%] Building CXX object Demos/DistanceFieldDemos/CMakeFiles/DeformableCollisionDemo.dir/__/Visualization/Shader.cpp.o [ 68%] Linking CXX executable ../../../bin/DeformableCollisionDemo ../../../lib/libSimulation.a(DistanceFieldCollisionDetection.cpp.o): 関数 `PBD::DistanceFieldCollisionDetection::collisionDetection(PBD::SimulationModel&)' 内: DistanceFieldCollisionDetection.cpp:(.text+0x293): `omp_get_max_threads' に対する定義されていない参照です Demos/DistanceFieldDemos/CMakeLists.txt の以下の行 find_package(GLUT REQUIRED) find_package(OpenGL REQUIRED)の下に以下のように追加。
find_package(OpenMP)
if (OPENMP_FOUND)
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
endif(OPENMP_FOUND)
こちら でパッチが提供されていた。 $ mv Demos.openmp.patch.txt ~/build/SPlisHSPlasH-1.3.1 $ cd ~/build/SPlisHSPlasH-1.3.1 $ patch -p1 < Demos.openmp.patch.txt さらにエラー。 [ 99%] Building CXX object Demos/SceneLoaderDemo/CMakeFiles/SceneLoaderDemo.dir/__/Visualization/Shader.cpp.o [100%] Linking CXX executable ../../../bin/SceneLoaderDemo /usr/bin/ld: /home/xxx/build/PositionBasedDynamics-1.6.0/extern/install/Discregrid/lib/libDiscregrid.a(cubic_lagrange_discrete_grid.cpp.o): シンボル 'pthread_create@@GLIBC_2.2.5' への未定義参照です //lib/x86_64-linux-gnu/libpthread.so.0: error adding symbols: DSO missing from command line 対応できなかったので、コンパイルから外す。 Demos/CMakeLists.txt
#SceneLoaderDemo
デモの実行$ cd ../bin $ ./RigidBodyCollisionDemo ![]() | |
| PENGUINITIS | |