0

参照される質問:iPhone/iPadプロジェクトで#importC++ヘッダーファイルを使用する場合の問題

ええと、私のプロジェクトは比較的巨大で、プロジェクトファイルのALLまたはPART OFをに変更したり、の.mALLまたはPARTOFファイルタイプを変更したりすることを解決することはできません。.mmFile Inspector

これは、私の同僚とライブラリの作成者の両方が、割り当てやその他のさまざまな違反など、C++標準に厳密に準拠していないvoid*ためです。int*Objective Cはこれらを許可し、警告を出します。

私が欲しいC++ヘッダーファイル#importはライブラリです。ヘッダーにキーワード名前空間.aを使用し、実装はアセンブリファイルにあります。つまり、それらをハッキングすることはほぼ不可能です。それ以外に、私のプロジェクトには、ObjectiveCとのみ互換性のある他のライブラリも含まれています。

誰かがこれを解決する方法を知っていますか?

私が想像できる方法は次のとおりです。

  1. 名前空間の代替を見つけますが、それでもQCAR::Rendererプロジェクトのようにコードを書きたいと思います。

  2. コンパイラに認識されたC++ヘッダーを指示します(まあ、それは不可能かもしれません)

編集

#ifdef __cplusplus
# include MyCPPHeader.h
#endif

それを使用すると、MyCPPHeader.h本当にObjective-C環境に含まれるのでしょうか?私はそうは思わない。そして、それはライブラリをハッキングしないという原則に反しています。

編集

これらの.mmファイルを変更してそのC++ヘッダーを含めても、「。」というリンクエラーが発生しますUndefined symbols for architecture armv7:。これは、他のライブラリのヘッダーを含むファイル の場合に発生します。 .mm.h

4

1 に答える 1