Xcode 프렌드 함수 인클루드 관련 질문드립니다.
어...일단 간략히 설명을 하자면 openGL 그래픽스 관련 학교 과제를 하고있는 중입니다.
이번 과제를 위해서 라이브러리(다운로드 링크)를 써야하는데, 교수님께서 비쥬얼 스튜디오에서 작업하신 라이브러리를 올려주셨고 윈도우에서는 별 문제가 없다고 합니다.
그런데 맥에서 해당 파일(*.h, *cpp)들을 빌드 패스에 등록하고 타겟도 잡아준 후 빌드하면 다음과 같은 에러가 나옵니다.
/Users/ik1ne/Graphics/Codes/MathClass/MATHCLASS/matrix.cpp:98:16: No matching function for call to 'exp'
(exp 함수는 quater 클래스 내부에 선언된 friend 함수입니다.)
일단 동일한 코드를 윈도우에서 컴파일했을때 잘 돌아가는걸 보니 코드 자체의 문제는 아닌듯 싶습니다. 함수 시그니쳐가 안맞아서 나오는 오류도 아니고요.
그런데 인터넷을 검색하다보니 g++ 컴파일러 버그중에 하나가 클래스 내부에 선언된 friend 함수를 링커단계에서 찾지 못해서 비슷한 일이 벌어진다는 얘기가 있어서, 한번 quarter 클래스 내부에에 이런 함수 선언을 추가해봤습니다.
(원래 있던 부분)
friend quater exp( vector const& );
....
(추가된 부분)
quater exp( vector const& );
...그랬더니 잘 컴파일이 됩니다.
이 현상이 단순히 제가 import/include를 잘못해서 벌어진 일인지, 아니면 llvm의 문제인지, 그냥 라이브러리의 오류인지 궁금합니다.
댓글 달기