2012-07-30 2 views
1

난 그냥 엑스 코드 4.4로 업데이트 이제이 링커 오류가 발생했습니다 :_objc_copyCppObjectAtomic 정의되지 않은 심볼 엑스 코드로 업데이트 한 후 4.4

Undefined symbols for architecture armv7: 
    "_objc_copyCppObjectAtomic", referenced from: 
     -[CLASSNAME box2DBodiesList] in CLASSFILENAME.o 
ld: symbol(s) not found for architecture armv7 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

반면 : @property (읽기 전용) 표준 : : 벡터 box2DBodiesList;

이것은 iOS 앱입니다.

단서가 있습니까?

답변

3

Xcode 4.4로 업그레이드 할 때도 동일한 문제가있었습니다.

아마도이 속성은 속성이 읽기 전용으로 선언되어 있지만 클래스 구현 내부에 이니셜 라이저에 값을 할당 한 것일 수 있습니다.

@interface CLASSNAME() 
@property(readwrite) std:vector box2DBodiesList; 
@end 

누락 된 기능과 같은 헤더 파일에 READWRITE로 속성을 선언하거나 구현 파일 (.mm)의 클래스 범주 선언 내부로 READWRITE를 재 선언함으로써이 문제를 해결할 수 _objc_copyCppObjectAtomic은 CPP 객체를 복사 할 때 사용되며 (C++ 데이터 유형으로 속성을 다시 작성하는 데 사용됩니다) 속성이 읽기 전용으로 표시되면 제외됩니다 (복사가 필요하지 않음).

희망이 도움이됩니다.

/AndLen

+4

감사합니다. 귀하의 솔루션은 제대로 작동하지 않았지만 올바른 방향으로 나를 지적했습니다. 저는 속성 선언문에 "nonatomic"을 추가했습니다. 이제는 프로젝트가 잘 컴파일됩니다. 감사합니다 agan! – user1563726

+0

그래, 비 원자학은 나를 위해 속임수를 했어. –