2014-04-29 3 views
1

PCL 라이브러리를 사용 중이며 내부적으로 부스트 라이브러리가 필요합니다.부스트 그래프에서 오류가 발생했습니다.

불행히도 나는 이와 같은 오류가 발생합니다. 명시 적으로 나는 부스트 라이브러리를 언급하지 않지만 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를 사용하면 질문에 표시된 오류가 발생합니다. 다른 헤더 파일을 사용할 때 오류가 없습니다 ..... 부스트 라이브러리로 인해 오류가 발생했습니다. – 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가 부스트의 일부 식별자와 충돌합니다. 이 때문에 첫 번째 줄로 icp.h을 이동할 때 문제가 사라집니다.

문제의 원인이되는 매크로를 찾으려면 지정한 줄을주의 깊게 살펴보십시오 : /usr/include/boost/graph/graph_concepts.hpp:368. 매크로는 아마도이 행이나 그 부근의 식별자 중 하나를 대체하거나 제거합니다. 행운을 빕니다.