Я пытаюсь разработать библиотеку C++ для приложения iOS. Эта библиотека загружает функции GLES и OpenAL. Идея состоит в том, чтобы создать библиотеку на C++ и использовать тот же код в iOS и Android (как в качестве встроенной компиляции). Я только с реализацией IOS, и я сделал пример приложения с библиотекой и у меня есть этот блок внутри библиотеки:Как использовать определение __IPHONE_4_0 в библиотеке C++ с Xcode?
#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 не может найти файлы include, но если я прокомментирую все , если clausule (часть android тоже), Xcode может найти все из них.
#warning предложения показывают, что компилятор читает часть iphone (с комментариями и без строк) во время компиляции. Нужно ли использовать определение другим способом?
Заранее благодарен!
Проверьте, что NAMEPROJECT-prefix.pch должен содержать исходный код. Не переименуйте * .mm! – vgonisanz