Я сильно использую функции С++ 0x/С++ 11 в своем проекте, в частности, блоки кода и общие указатели. Когда я обновил свою ОС до 10.8 Mountain Lion (Edit: From 10.7), я был вынужден обновить Xcode. При обновлении Xcode я потерял способность скомпилировать мой проект С++ для развертывания на 10.6 системах, поскольку получаю следующую ошибку.
clang: error: invalid deployment target for -stdlib=libc++ (requires Mac OS X 10.7 or later)
Похоже, Apple пытается заставить людей обновиться, не позволяя разработчикам поддерживать Snow Leopard. Меня это раздражает. Arrrggg!!!
Что я могу сделать?
РЕДАКТИРОВАТЬ: После нескольких комментариев назад и вперед должно быть ясно, что 10.6 не поставляется с библиотеками libС++. В результате просто невозможно создать проект libС++ для развертывания 10.6. Вам также необходимо будет включить файлы libС++ с вашим дистрибутивом 10.6 или статической ссылкой на них. Поэтому давайте продолжим с предпосылкой, что я уже это делаю.
ОБНОВЛЕНИЕ 1: Этот вопрос изначально предназначался для использования с Xcode 4.5.2 (последняя версия на момент запроса). С тех пор я обновился до Xcode 4.6.3 и обновил вопрос и ответ, чтобы отразить это.
ОБНОВЛЕНИЕ 2: С тех пор я обновился до Xcode 5.0.2. Техника, перечисленная в выбранном ответе ниже, работает по-прежнему.
ОБНОВЛЕНИЕ 3: С тех пор я обновился до Xcode 5.1. Техника, перечисленная в ответе ниже, пока не работает для этой версии!
ОБНОВЛЕНИЕ 4: С тех пор я обновился до Xcode 6.0.1. Ниже приведена методика, указанная в выбранном ниже ответе.
ОБНОВЛЕНИЕ 5: С тех пор я обновил до Xcode 7.1.1. Ниже приведена методика, указанная в выбранном ниже ответе, с одним важным предостережением. Вы должны отключить Биткодинг, используемый для AppThinning, поскольку версия LLVM с открытым исходным кодом не поддерживает его (и не должна). Таким образом, вам нужно будет переключаться между открытым исходным кодом и Apple LLVM clang, чтобы скомпилировать как 10.6, так и tvOS/watchOS (так как для этих ОС требуется биткодинг).