2015-11-15 70 views
2

我想在Ubuntu 14.04上從libhand.org構建一個手型庫。該庫使用食人魔和opencv庫。我遵循作者提供的說明,允許我成功安裝食人魔和opencv。 cmake沒有問題..。但在執行命令Libhand庫編譯錯誤找不到-lNOTFOUND

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 

有誰知道爲什麼會出現這種錯誤,什麼可以做什麼?

回答

0

我假設發生此錯誤的原因是在運行cmake期間沒有找到所需的庫,但該事件沒有被正確檢測到(即,cmake沒有因錯誤而中止)。有關這方面的更多詳細信息應在CMakeFiles目錄中名爲CMakeError.logCMakeOutput.log的文件中提供。

此問題的解決方案是安裝缺少的庫(應從上述文件中提供該名稱)或修復構建過程以查找庫(如果已安裝)(對於autotools,這將使用CFLAGSLDFLAGS環境變量指向正確的包含路徑,編譯器選項,庫路徑和庫;也應該與CMake一起使用)。

作爲替代解釋,cmake找到了該庫,但未能寫出正確的Makefile。然後解決方案將在Makefile中手動替換-lNOTFOUND-l<library name>

+0

我檢查了CMakeOutput.log。我如何知道什麼庫缺少?我尋找什麼樣的字符串? – user27665