Libhand库编译错误找不到-lNOTFOUND



我正试图在Ubuntu 14.04上从libhand.org构建一个手模型库。该库使用了ogre和opencv库。我按照作者提供的说明成功安装了食人魔和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

有人知道为什么会出现这种错误以及可以做些什么吗?

我认为发生此错误是因为在运行cmake的过程中没有找到某些必需的库,但没有正确检测到该事件(即cmake没有因错误而中止)。CMakeFiles目录中名为CMakeError.logCMakeOutput.log的文件中应提供更多详细信息。

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

作为另一种解释,cmake找到了库,但不知何故未能写入正确的Makefile s。然后,解决方案是在Makefile s中用-l<library name>手动替换-lNOTFOUND

相关内容

  • 没有找到相关文章

最新更新