#c #xcode #macos
#c #xcode #macos
Вопрос:
Как я могу отключить расширения компилятора, используя C в Xcode? Я уже пытался найти это в разделе Схемы. Но не нашел его там.
Комментарии:
1. Используйте
-std=c 17
опцию компилятора (или более раннюю стандартную версию, если вы предпочитаете). Понятия не имею, есть ли для этого флажок в графическом интерфейсе, но кого это волнует? Просто передайте правильный параметр, и вы должны получить стандартное поведение.
Ответ №1:
Для тех, кто спрашивает о Xcode, вот как добавить флаги компилятора:
- В Xcode нажмите CMD 1, чтобы отобразить навигатор проекта.
- В навигаторе проектов щелкните по вашему проекту, тому, у которого есть синий значок файла.
- В главном окне редактора выберите целевой файл.
- Нажмите на Настройки сборки.
- Убедитесь, что выбраны «Все» и «Объединенные».
- Введите «флаг c » в фильтре поиска.
- Теперь вы должны увидеть настройку «Другие флаги C » под заголовком «Пользовательские флаги компилятора».
- Дважды щелкните справа от этой строки. Появляется небольшое окно.
- Нажмите кнопку » «, введите «-std=c 17» и нажмите Enter для сохранения.
- Нажмите » » еще раз, введите «-pedantic-errors» и нажмите Enter.
Готово! Щелкните, чтобы закрыть всплывающее окно, и вы увидите, что оба флага были добавлены в параметр «Другие флаги C «. Вы также могли бы щелкнуть правой кнопкой мыши, и вместо всплывающего окна оно превратится в редактируемое текстовое поле. Вы также можете добавить флаги таким способом, просто введя их все в одной строке, разделенной пробелом. Просто оставьте пробел после $(OTHER_CFLAGS) и добавьте свои флаги в конце. Не удаляйте $(OTHER_CFLAGS)!
Примечание 1: В настройках сборки Xcode 11.3 под заголовком Политики предупреждений вы увидите настройки для «Педантичных предупреждений» и «Рассматривать предупреждения как ошибки». Однако установка для них обоих значения «Да», похоже, только добавляет флаг «-pedantic». Не «педантичные ошибки», как мы хотим. Не уверен, что это ошибка или так задумано, на данный момент я думаю, оставьте их оба на «Нет» и используйте настройку пользовательских флагов компилятора, как показано выше.
Примечание 2: Существует параметр сборки, называемый «Диалект языка C «. Просто введите «диалект» в фильтре поиска, и вы найдете его. Вы можете щелкнуть раскрывающийся список и выбрать C 17 здесь. Это отправит флаг «-std =c 1z» компилятору, поэтому вам не придется вручную добавлять его в настройку пользовательских флагов.
Редактировать: Выяснилось, что C 1z был названием черновой версии C 17 до ее утверждения.
Ответ №2:
1. Выберите проект, к которому принадлежит ваш целевой / исполняемый файл.
2.Выберите целевой объект, для которого вы хотите предоставить флаги компилятора.
3. Выберите «Этапы сборки» -> «скомпилировать исходные тексты»
4. Дважды щелкните по файлу, который генерирует исполняемый файл.
5. Вставьте флаг компилятора, например, -fno-elide-constructors
Вот и все. Перестройте вашу цель, и вы не должны увидеть, что какие-либо конструкторы копирования пропускаются.