我正在尝试在 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。
请参阅 README.md 的“支持的平台”部分,了解 LibHand 当前支持的具体操作系统版本。
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 包,请将“universe”附加到您的 sources.list,运行 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
(来源)