1

別のスタンドアロン プロジェクトで問題なく動作するコードを使用しようとしています。

このコードを他の最終プロジェクトに持ち込むと、「cmath」ファイルが見つからないことが示されます。

#include を含むファイルは .hpp ファイル (opengl のいくつかの構造体を定義するだけ) にあるため、対応する .mm ファイルはありません。(これは C++ コードであり、私は主に Objective-C のユーザーなので、すべての C++ のことはわかりません) しかし、これは opengl のものであり、このプロジェクトでは問題なく動作します。

私はこれを機能させるためにあらゆることを試みました。

問題のある最終プロジェクトには、問題なく #include を使用する他のコードがあります。何かが原因で xcode がヘッダーのパスを認識しなくなったようです。ファイルの種類を確認しましたが、「デフォルトの C++ ヘッダー」です。

最終的なプロジェクトでは、Zxing と CorePlots を使用しています。それらが問題を引き起こしているかどうかはわかりません。また、#incude と競合する可能性があるかどうかわからない #include を使用しているファイルもあります。(ただし、 #include を含む他のファイルは正常に機能しています。

どんな助けでも大歓迎です...

4

2 に答える 2

5

Jon Reid の良いアドバイスの代わりに、Build Settings で「Compile as Objective-C++」を選択できます。(「ビルド設定」ウィンドウで「ソースのコンパイル」を検索してください。) これは少しワイルドウェストですが、問題が実際に C++ ソースが C または Objective-C としてコンパイルされているかどうかを確認する簡単な方法です。

于 2012-05-12T22:40:45.227 に答える
4

ヘッダー ファイルは単独では存在しません。何かがそれをインポートする必要があります。インポート ファイルの名前を変更し、ファイル タイプを .m から .mm に変更します。

たとえば、<cmath> を含むヘッダーの名前が foo.h だとします。barこれは、bar.h と bar.m で構成されるモジュールによって使用されます。したがって、foo.h は bar.h または bar.m のいずれかにインポートされます。

C++ を使用するように、bar.m の名前を bar.mm に変更します。foo.h に依存するすべての .m ファイルに対して同じことを行います。

于 2012-05-12T22:36:19.740 に答える