Я пытаюсь разработать библиотеку С++ для приложения iOS. Эта библиотека загружает функции GLES и OpenAL. Идея состоит в том, чтобы разработать библиотеку на C++ и использовать один и тот же код в iOS и Android (как в нативной компиляции). Я только с реализацией iOS, и я сделал образец приложения с библиотекой, и у меня есть этот блок внутри библиотеки:
#ifdef _IPHONE_4_0 #warning "Including iPhone SDK 4.0 working here" // compiling warning is actived #include <OpenGLES/ES2/gl.h> #include <OpenGLES/ES2/glext.h> #include <OpenAL/al.h> #include <OpenAL/alc.h> ... #elif __ANDROID_API_ // Android #warning "Including Android working here" // Compiling warning is not actived ... #endif
Итак, проблема связана с предложением «#ifdef _IPHONE_4_0». Если я использую его, Xcode не может найти включаемые файлы, но если я прокомментирую все предложения if (тоже для Android), Xcode сможет найти их все.
Предложения #warning показывают, что компилятор читает часть iphone (с комментариями и без строк) во время компиляции. Нужно ли использовать определение по-другому?
Заранее спасибо!