C ++와의 통합을 테스트하려는 Xcode 표준 Objective-C 프로젝트를 만들었습니다. 그에 따라 파일 이름을 .mm 등으로 변경했습니다.
.hpp 헤더와 .cpp imp 파일이있는 C ++ 클래스를 만들었습니다. 이것은 헤더입니다
class a {
private:
int anInt = 1;
public:
int getAnInt();
};
이것은 꼬마 도깨비입니다
#include "PrismMatricies.hpp"
int a::getAnInt() {return anInt;}
내 ViewController.mm 파일에서 .hpp 헤더를 가져온 후이 작업을 수행합니다.
a ar;
NSLog(@"Some Log %i", ar.getAnInt());
Xcode에서 빌드 오류 코드 = 정의되지 않은 기호 : a :: getAnInt ()
이와 같이 헤더 내부의 함수 정의를 이동하면
class a {
private:
int anInt = 1;
public:
int getAnInt();
};
int a::getAnInt() {return anInt;}
프로젝트 작동
내가 이해하지 못하기 때문에 누구든지 나에게 이것을 설명 할 수 있습니까?
"정의되지 않은 기호"는 컴파일 오류가 아니라 링크 오류이며 코드가 확실히 정확 해 보입니다.
.cpp가 빌드 대상에 연결되지 않으면 해당 오류가 발생합니다. 빌드 대상의 "컴파일 소스"목록에 포함되어 있는지 확인하십시오. (파일 검사기 유틸리티 창에서 대상 멤버 자격 상자가 선택되어 있는지 확인할 수도 있습니다.)
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다