Я бы порекомендовал альтернативный подход - поскольку препроцессоры (IMO) могут усложнить управление кодом. Это особенно верно, поскольку Eclipse, похоже, не распознает директивы препроцессора, когда дело доходит до оценки кода - поэтому, если вы пытаетесь протестировать на более старом симуляторе, это вызывает головную боль. (Не невозможно, просто прыгайте через дополнительные обручи.) Для более крупного приложения со временем это станет проще для управления - хотя первоначальная настройка требует больше работы.
Одной из альтернатив является использование наследования и отдельных библиотек. Таким образом, ваш самый низкий общий знаменатель - ваша базовая библиотека. Ваша библиотека OS 4.5 находится на вершине этого и дополняет ее функциями OS 4.5; и OS 4.6 расширяет содержимое OS 4.5 и т. д. Зависимости вашего приложения будут выглядеть следующим образом:
- YourApp.cod
- SharedComponents.cod (самый низкий уровень, 4,2)
Большинство ваших функций находятся в вашей базовой библиотеке 4.2 «SharedComponents» - только те вещи, которые распространяются на конкретные версии платформы, находятся в библиотеках более высокого уровня. Вы бы поставили версию 5.0 вашего приложения со всеми библиотеками; в то время как сборка 4.2 будет поставляться только с «Вашим приложением» и «SharedComponents.cod», а остальные окажутся между ними.