1

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(読み取り専用)std :: vector box2DBodiesList;

これはiOSアプリです。

どんな手掛かり?

4

1 に答える 1

4

XCode4.4にアップグレードしたときに同じ問題が発生しました。

問題は、プロパティが読み取り専用として宣言されていることですが、クラス実装内、おそらく初期化子で値を割り当てます。

これを解決するには、ヘッダーファイルでプロパティをreadwriteとして宣言するか、実装ファイル(.mm)のクラスカテゴリ宣言内でreadwriteとして再宣言します。

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

欠落している関数_objc_copyCppObjectAtomicは、CPPオブジェクトをコピーするときに(C ++データ型でプロパティを読み取り/書き込みするために)使用され、プロパティが読み取り専用としてマークされている場合(コピーは不要)に除外されます。

お役に立てれば!

/ AndLen

于 2012-07-31T13:23:16.140 に答える