3

iOS 用の静的ライブラリを構築しようとしています。Objective-C++ ラッパーを使用した 4 つの C++ クラスがあります。正常にビルドされているように見えますが、単体テストを実行しようとすると、以下のようなリンカー エラーが大量に発生します。ライブラリを使用するために追加する必要があるコマンドはありますか?

(null): "std::__1::__vector_base_common<true>::__throw_length_error() const", referenced from:

編集:

libc++.dylibフレームワークを両方のターゲットに追加することで、これを解決しました。

4

1 に答える 1

0

予感: ライブラリと単体テストのターゲットは、使用する C++ 標準ライブラリについて意見が一致していません。両方のターゲットでビルド設定を再確認してください。

  • Xcode 4.6 では、設定は「Apple LLVM コンパイラ 4.2 - 言語」という見出しの下にあります。
  • Xcode 5 では、設定は「Apple LLVM 5.0 - Language - C++」という見出しの下にあります。

どちらの場合も、設定には「C++ 標準ライブラリ」という名前が付けられ (当たり前!)、2 つのターゲットは、libstdc++ と libc++ のどちらを使用するかについて合意する必要があります。

于 2013-11-07T22:22:44.117 に答える