2014-04-22 4 views
0

좌표 파일을 사용하는 일부 Coordinate.h, 일부 Coordinate.inl 및 일부 build_geometry.cpp 헤더 파일이 있습니다.C++의 "암시 적 소멸자"

Coordinate.h에는 ~Coordinate();이 정의 된 이전 버전과 소멸자 정의 행이없는 최신 버전의 두 가지 버전이 있습니다. 마찬가지로, 새로운 버전의 Coordinate.inl 어떤 소멸자 정의와 이전 버전을 언급하지 않는 것은 포함

INLINE 
    Coordinate::~Coordinate() 
    { 
    } 

가 지금은 이전 버전과 함께 잘 작동 Coordinate.h/Coordinate.inl에 대한 build_geometry.cpp을 컴파일해야 of Coordinate.h/Coordinate.inl. 그렇지 않으면 에러로 끝날 것입니다 :

build_geometry.o: build_geometry.cpp:203: more undefined references to `geos::geom::Coordinate::~Coordinate()' follow 
    collect2: ld returned 1 exit status 

이것은 좌표 유형이 사용 된 사이클/방법의 끝에서 분명히 발생합니다.

그래서 어딘가에 선언 된 이러한 비어있는 소멸자없이 컴파일하고 링크하는 방법은 무엇입니까?

+0

오류가 발생한 헤더의 소멸자에 대한 함수 본문을 정의 했습니까? – 101010

+0

어떤 툴체인을 사용하고 어떤 플랫폼에서 사용하고 있습니까? 툴체인과 관련된 것일 수 있습니다. – cup

+0

두 개의 Coordinate 클래스 정의가 있다고 하시겠습니까? – marcinj

답변

0

수정 됨 : /usr/local/include/...에 구형 인 내용이 있으며 /usr/include/에서 올바른 버전이 선행되었습니다.