3

我正在尝试在 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

有谁知道为什么会发生此错误以及可以做什么?

4

1 回答 1

0

我认为发生此错误是因为在运行期间未找到某些必需的库,cmake但未正确检测到该事件(即cmake未因错误中止)。有关这方面的更多详细信息,应在名为CMakeError.log或目录的文件CMakeOutput.log中提供CMakeFiles

此问题的解决方案是安装缺少的库(应从上述文件中获得该名称)或修复构建过程以查找库,如果它已安装(对于自动工具,这将使用CFLAGSLDFLAGS环境变量来指向正确的包含路径、编译器选项、库路径和库;这也应该适用于 CMake)。

作为替代解释,cmake找到了库,但不知何故未能编写正确Makefile的 s。然后解决方案将手动-lNOTFOUND替换s -l<library name>​​.Makefile

于 2015-11-15T13:06:13.967 回答