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の部分(コメントされた行がある場合とない場合)を読み取っていることを示しています。他の方法で定義を使用する必要がありますか?
前もって感謝します!