Использовать компилятор LLVM по умолчанию для всех проектов XCode? - PullRequest
3 голосов
/ 25 января 2011

Мне действительно нравится переключаться с gcc на компилятор LLVM, но нужно ли мне переключаться вручную каждый раз, когда я начинаю новый проект, или есть ли способ сделать LLVM компилятором по умолчанию?

Я говорю о xcode 3.

Спасибо.

Ответы [ 5 ]

5 голосов
/ 25 января 2011

Для этого вам нужно изменить шаблон проекта в каталоге Developer.

Перейдите туда, где находятся ваши шаблоны (вероятно, что-то вроде: /Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Project Templates/

Когда вы там, вы можете выбрать шаблон проекта, который вы хотите изменить, и найти его .xcodeproj файл. Вы можете «показать содержимое пакета», и внутри будет project.pbxproj. Вы можете изменить этот файл и отредактировать его в настройке сборки, чтобы изменить компилятор по умолчанию.

Вам нужно будет найти каждый раздел, относящийся к настройкам сборки для каждой конфигурации (отладка, выпуск и т. Д.), Выполнить поиск /* Begin XCBuildConfiguration section */.

Затем вам нужно будет добавить GCC_VERSION в качестве ключа и com.apple.compilers.llvm.clang.1_0 в качестве значения (1_0 в данном случае на самом деле LLVM 1.6 в соответствии с Xcode. Я также предполагаю, что имя ключа GCC_VERSION имеет только GCC в нем по старым причинам это, вероятно, будет обновлено до COMPILER_VERSION или что-то в будущем).

Сохраните шаблон и создайте новый проект (возможно, вам придется перезапустить Xcode, если он был открыт). Компилятор должен быть теперь установлен в LLVM.

Однако я не рекомендую вам делать это, поскольку LLVM по-прежнему не на 100% подходит для развертывания приложений для пользователей.

1 голос
/ 29 апреля 2011

Самый простой способ (и, я думаю, самый умный) сделать это для всех будущих проектов - это выполнить следующие 5 шагов:

  1. перейдите к /Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates/Project Templates/iPhone Base.xctemplate (вы можете просто нажать Ctrl + o (открыть) в Xcode, затем Ctrl + Shift + G (перейти в папку) и вставить этот путь)
  2. открыть файл TemplateInfo.plist в Xcode
  3. перейдите в Project> SharedSettings> свойство GCC_VERSION и измените его значение String на com.apple.compilers.llvm.clang.1_0: http://grab.by/a0dV
  4. сохранить файл
  5. проверить, открыв новый проект iPhone.

Вы можете сделать то же самое для других новых проектов, перейдя, например, на /Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates/Project Templates/iPad Base.xctemplate для проектов iPad и т. Д.

Вот и все.

Всем хорошего дня.

1 голос
/ 25 января 2011

Я не верю, что есть (легкий) способ сделать это. (то есть: для такой вещи нет опции панели предпочтений.) Тем не менее, совет в существующей настройке GCC 4.2 в качестве компилятора по умолчанию в Mac OS X Leopard вопрос должен работать @ Ответ Jasariens кажется идеальным, если настройка для каждого проекта оказывается утомительной.

Однако LLVM не совсем готов к прайм-тайм, поэтому я действительно рекомендую не использовать его для окончательного развертывания приложений и т. Д. (Если вы при возникновении каких-либо странных проблем переключитесь на использование GCC, и они вполне могут исчезнуть.)

Кстати, хотя и не по теме, в вопросе Скрытые возможности XCode также есть несколько полезных советов, так что они могут быть достойны просмотра. : -)

0 голосов
/ 25 июля 2012

Во всех ответах рассказывается, как изменить значение компилятора по умолчанию для новых проектов.

Вот как напрямую изменить значения «iOS по умолчанию» в XCode для любых проектов:

РЕДАКТИРОВАТЬ файл (с помощью sudo)

/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOSXXXX.sdk/SDKSettings.plist

Перезапустите XCode и готово!

0 голосов
/ 25 января 2011

Я написал простой сценарий , который создает новый проект Xcode с нормальными значениями по умолчанию.Возможно, стоит адаптировать, чтобы вам не приходилось настраивать каждый новый проект вручную.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...