2016-09-05 2 views

ответ

1

От project setting перейти к build setting с выбранной целью. затем выберите All рядом с Basic с верхней панели. то в опции сборки вы можете увидеть опцию компилятора.

см ниже скриншоте,

enter image description here

Update:

Я думаю, вам следует обратиться Using C and C++ in an iOS App with Objective-C++ и this tutorial.

+1

Когда я добавляю компилятор к этой опции, он показывает мне, что это неподдерживаемый компилятор. –

+0

с последним xcode вы можете использовать только 'llvm'. и почему вы хотите установить еще один? – Lion

+0

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

1

Пару лет назад я написал статью, в которой обращается именно эту проблему вы описываете: Creating and using Clang plugin with Xcode

Чтобы включить пользовательские лязг вам нужно на самом деле патч Внутренности самого Xcode.app, это технически выполнимо, но:

  1. он сломается при обновлении Xcode
  2. он будет корректно работать на вашей машине
  3. версия плагина и ваш компилятор должен соответствовать, т.е. они должны быть скомпилированы с использованием того же дерева

Так что в целом это на самом деле не масштаб, так что будьте осторожны :)

2

Там в несколько неясна особенность Xcode, где он поддерживает "alternative toolchains". Например, Swift.org предоставляет устанавливаемые инструменты для Swift, созданные из существующих источников.

К сожалению, хотя документация Apple описывает, как устанавливать и использовать такие альтернативные инструментальные цепочки, она не описывает, как их создавать. В исходной базе Swift есть скрипты, которые создают инструментальную цепочку, и вы можете посмотреть на них, чтобы выяснить, как это делается. Они находятся в https://github.com/apple/swift/tree/master/utils. Начните с build-toolchain, который вызывает build-script и идите оттуда.

2

Люди говорят, что это возможно с помощью специальных инструментальных цепей. Я не проводил исследований по ним, потому что для меня работало более простое решение:

Также можно запускать интерфейсные модули напрямую, установив соответствующие «настройки сборки» Xcode. (Несколько способов сделать это, вы можете установить их в командной строке, например: xcodebuild build FOO = bla.) Вот несколько настроек сборки, которые я нашел полезными для ввода флагов C:

OTHER_CFLAGS, OTHER_CPLUSPLUSFLAGS или заменить компилятор (s) и линкер (ы):

CC, CPLUSPLUS, LD, LDPLUSPLUS, LIBTOOL

Тот же подход работает, чтобы контролировать "анализировать" действия: CLANG_ANALYZER_EXEC, CLANG_ANALYZER_OTHER_FLAGS

Предупреждение: некоторые из этих настроек сборки недокументированы (afaik). Используйте на свой риск.

(Взято из [cfe-dev] Compile/refactor iOS Xcode projects)

Для меня это было достаточно, чтобы определить следующие пользовательские настройки в Параметры построения проектов Xcode:

CC=my-c-compiler 

CXX=my-cxx-compiler 

LIBTOOL=my-linker-for-static-libraries 

Если вы используете CMake, способ автоматического использования вашего компилятора заключается в использовании

set_target_properties(your-target PROPERTIES XCODE_ATTRIBUTE_CC "${YOUR_CC}") 
set_target_properties(your-target PROPERTIES XCODE_ATTRIBUTE_CXX "${YOUR_CXX}") 
Смежные вопросы