iOSアプリケーション用のC++ライブラリを開発しようとしています。このライブラリは、GLESおよびOpenAL関数をロードします。アイデアは、C ++でライブラリを開発し、iOSとAndroidで同じコードを使用することです(両方ともネイティブコンパイルとして)。私はiOSの実装のみを使用しており、ライブラリを使用してサンプルアプリケーションを実行し、ライブラリ内に次のブロックがあります。
#ifdef _IPHONE_4_0 #warning"ここで動作するiPhoneSDK4.0を含む"//コンパイル警告がアクティブになっています #include <OpenGLES / ES2 / gl.h> #include <OpenGLES / ES2 / glext.h> #include <OpenAL / al.h> #include <OpenAL / alc.h> ..。 #elif __ANDROID_API_ // Android #warning"ここで動作するAndroidを含む"//コンパイル警告はアクティブではありません ..。 #endif
したがって、問題は「#ifdef_IPHONE_4_0」という文にあります。これを使用すると、Xcodeはインクルードファイルを見つけることができませんが、すべてのif句(Android部分も)にコメントすると、Xcodeはすべてのファイルを見つけることができます。
#warning文は、コンパイラがコンパイル時にiphoneの部分(コメントされた行がある場合とない場合)を読み取っていることを示しています。他の方法で定義を使用する必要がありますか?
前もって感謝します!