2

この質問への回答により、プロジェクトをコンパイルするには、「その他のリンカーフラグ」に-lstdc++を追加する必要があることに気付きました。

コードをプロジェクトに直接コンパイルすると、正常に実行されます。それをフレームワークに組み込み、そのフレームワークを含めると、次のように文句を言います。

Undefined symbols for architecture armv7:
  "std::terminate()", referenced from: ...

-lstdc ++を追加すると、問題が解決するようです。それが機能するのは素晴らしいことですが、コードをフレームワークとして扱うときにのみこの問題が発生する理由を誰かが理解するのを手伝ってくれるでしょうか?

4

1 に答える 1

1

ジェリー・コフィンのコメントは有益な答えでした。コンパイラは.mm拡張子を検出し、フレームワークビルドをObj-C ++に切り替えていましたが、フレームワークを含むビルドもこの方法でコンパイルする必要があることを示していませんでした。

于 2013-01-08T23:29:15.187 に答える