
Ubuntu 14.04でlibhand.orgのハンドモデルライブラリをビルドしようとしています。ライブラリはogreとopencvライブラリを使用します。作者の指示に従って、ogreとopencvを正常にインストールできました。cmakeでは問題ありませんが、コマンドの実行中に
make -j4
次のエラーが発生します:
[ 87%] Building CXX object source/CMakeFiles/hand_renderer.dir/hand_pose.cc.o
[ 91%] Building CXX object source/CMakeFiles/hand_renderer.dir/scene_spec.cc.o
Linking CXX static library libhand_renderer.a
[ 91%] Built target hand_renderer
Scanning dependencies of target pose_designer
[ 95%] Building CXX object source/CMakeFiles/pose_designer.dir/pose_designer_main.cc.o
[100%] Building CXX object source/CMakeFiles/pose_designer.dir/pose_designer.cc.o
Linking CXX executable pose_designer
/usr/bin/ld: cannot find -lNOTFOUND
/usr/bin/ld: cannot find -lNOTFOUND
libhand_utils.a(file_dialog.cc.o): In function `libhand::FileDialog::TkExec(std::string const&)':
file_dialog.cc:(.text+0xead): warning: the use of `mktemp' is dangerous, better use `mkstemp' or `mkdtemp'
collect2: error: ld returned 1 exit status
make[2]: *** [source/pose_designer] Error 1
make[1]: *** [source/CMakeFiles/pose_designer.dir/all] Error 2
make: *** [all] Error 2
このエラーが発生する理由と、対処方法を知っている人はいますか?
答え1
もしまだ回答に興味があるなら、2015 年 11 月にこの質問を投稿してから数か月経ちましたが、私は GitHub にアップロードされた LibHand の最も人気のあるバージョンのメンテナーを務め始めました。
リポジトリを以下に移転しましたhttps://github.com/libhand/libhand/
執筆時点では、これらの手順に従えば、LibHand は最新の Debian (および Ubuntu などの派生版) で正常にコンパイルおよび実行されるはずです。
Debian/Ubuntu でのソフトウェア依存関係の満足
以下の手順に従えば、現在 Debian プロジェクトと Canonical でサポートされている Debian/Ubuntu のすべてのバージョンで、LibHand をそれほど問題なくコンパイルできます。
LibHand が現在サポートしている正確な OS バージョンについては、README.md の「サポートされているプラットフォーム」セクションを参照してください。
sudo apt-get install build-essential cmake git libogre-1.9-dev libglu1-mesa-dev libxt-dev libopencv-dev tcl tk libboost-system-dev libboost-filesystem-dev
Ubuntu 12.04 および Debian Wheezy では、libogre-1.9-dev パッケージは利用できないため、libogre-dev (これらのシステムでは v1.7.4) で置き換えてください。
Ubuntu 12.04/14.04/16.04 の新規インストールで、apt-get が OpenCV (libopencv-dev) および OGRE パッケージを見つけられない場合は、sources.list に 'universe' を追加し、sudo apt-get update を実行して再試行してください。
libhand と pose_designer のコンパイル
git clone https://github.com/libhand/libhand mkdir build cd build cmake .. make # Collate libhand build artifacts into local "dist" directory (for external applications to link against) make install # Ensure path exists first: on 32-bit, x86_64 is replaced with i386. Replace OGRE version with whatever was installed (likely OGRE-1.9.0, OGRE-1.8.0, or OGRE-1.7.4). export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/x86_64-linux-gnu/OGRE-1.9.0 ./hand_cpp/source/pose_designer
(ソース)