2014-04-29 80 views
1

我正在使用PCL庫,並且它在內部需要增強庫。升壓圖中的錯誤

不幸的是,我得到了這樣的錯誤。顯式地,我沒有提到任何boost庫,但PCL庫。

/usr/include/boost/graph/graph_concepts.hpp: In destructor ‘boost::concepts::AdjacencyMatrix<G>::~AdjacencyMatrix()’: 
/usr/include/boost/graph/graph_concepts.hpp:368:17: error: missing template arguments before ‘(’ token 
/usr/include/boost/graph/graph_concepts.hpp: In member function ‘void boost::concepts::AdjacencyMatrix<G>::const_constraints(const G&)’: 
/usr/include/boost/graph/graph_concepts.hpp:372:17: error: missing template arguments before ‘(’ token 
+0

此外,你應該顯示線被稱爲 – sehe

+0

好的。我收集點雲庫。在我的盒子上編譯需要一段時間(它只是一個帶有32GiB的四核HT i7)。讓你知道什麼時候完成 – sehe

+0

點雲庫正在編譯沒有任何錯誤。但是當我在程序中使用頭文件pcl/registration/icp.h時,問題中顯示的錯誤就會彈出。當我使用其他頭文件時沒有錯誤.....通過我有任何機會是因爲boost庫的錯誤? – Sai

回答

1

這很奇怪。當我提出的頭文件

#include<pcl/registration/icp.h>

所有的頭文件的開頭

的問題就解決了。沒有錯誤,並執行程序給予預期的結果!

+0

好找。請向PCL的開發者報告:)我剛剛到達了一個成功的編譯,包括'icp.h' – sehe

+0

我以前遇到過這樣的問題。它們通常源於忘記在自定義創建的類標題中放置分號。在郵寄開發者之前,我會仔細檢查你的任何頭文件。只是一個想法。 – pbible

1

無法重現它。

這裏就是我所做的:

編譯花了一些時間

cd /tmp 
tar xf ~/Downloads/pcl-pcl-1.7.1.tar.gz 
cd pcl-pcl-1.7.1/ 
cmake . 
time make -sj 

輸出與

... 
Linking CXX executable ../bin/pcl_train_linemod_template 
[100%] Built target pcl_train_linemod_template 

real 13m55.327s 
user 82m49.499s 
sys 2m24.611s 

相當令人印象深刻的結束。但顯然沒有編譯錯誤(http://paste.ubuntu.com/7359651/)。我希望你能弄清楚你有什麼不同。

1

很可能,您的某個程序頭文件有一些#define ZZZ語句,並且該宏ZZZ與Boost中的某個標識符衝突。這就是爲什麼當您將icp.h移動到第一行時問題消失。

要找出哪個宏導致問題,請仔細查看您指定的行:/usr/include/boost/graph/graph_concepts.hpp:368。該宏可能會替換或刪除該行或其附近的標識符之一。祝你好運。