2014-07-14 3 views
0

프로젝트를 빌드 할 때이 오류가 발생합니다. error C2143: syntax error : missing ';' before ''template<'' . 그래서 누구든지이 오류를 해결할 수있는 방법을 조언 할 수 있다면.오류 C2143 : 구문 오류 : ';'가 없습니다. before ''template < ''

+3

팁 : 이와 같은 문제를 해결하려면 문제를 해결할 수있는 최소의 경우로 줄이십시오. 그러면 더 분명해질 수 있습니다. –

+3

게시 팁 : "90 행의 오류"를 게시 할 때 실제로 코드의 어느 행이 90 행인지 나타냅니다. –

+1

'템플릿 PCL_EXPORTS bool'이어야한다고 생각합니다. 그러나 템플릿 함수는 인스턴스화 시점에서 완전히 보일 수 있어야하므로 여전히 비린내가 있습니다. 이 파일이 PCL의 실제 파일입니까, 아니면 다른 사람이 템플릿 비트에서 편집 한 파일입니까? –

답변

2

PCL_EXPORTS bool template <typename Scalar> 

와 선은

template <typename Scalar> PCL_EXPORTS bool 

은 아마 PCL_EXPORTS__declspec(dllexport)이며, 일반적으로 이러한 일들이 template< ... > 후에 와야 할 수 있어야합니다.

이 템플릿은 최신 PCL을 새로 다운로드 할 때 표시되지 않으므로 누군가가 만든 포크라고 생각하고 사용하는 컴파일러의 속성에 의존합니다.

일반적으로 말하자면, 기능 템플릿에 dllexport을 쓰는 것은 웜의 깡통입니다. 그러나 당신이이 변화가 그것을 고치는 것처럼 보인다고했기 때문에, 아마 웜은 지금 당장 깡통에 머무르고 있습니다!

+0

+1하지만 * 다른 링크 오류가 나타났습니다 * 위의 설명은 웜이 너무 오래 머물러 있지 않은 것 같습니다 – Praetorian

관련 문제