更新到XCode 4.4后_objc_copyCppObjectAtomic未定义的符号

时间:2012-07-30 18:05:48

标签: box2d clang xcode4.4

我刚刚更新到XCode 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(readonly)std :: vector box2DBodiesList;

这是一款iOS应用。

有任何线索吗?

1 个答案:

答案 0 :(得分:3)

当我升级到XCode 4.4时,我遇到了同样的问题。

问题可能是该属性被声明为readonly,但您在类实现中为它分配了一个值,可能是在初始化器中。

您可以通过在头文件中将属性声明为readwrite,或者在实现文件(.mm)中的类类别声明中将其重新声明为readwrite来解决此问题,就像这样

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

缺少函数_objc_copyCppObjectAtomic用于复制CPP对象(用C ++数据类型读写属性),并在属性标记为只读时排除(不需要复制)。

希望这有帮助!

/ AndLen

相关问题