TL; DR
Убедитесь, что вы загрузили последний пакет 'Инструменты командной строки' и запустите его из терминала (командной строки):
open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg
Извлечение полусвязного ответа из довольно обширных комментариев…
Преамбула
Очень часто xcode-select --install
было правильным решением, но это не такпохоже, поможет в этот раз.Вы пытались запустить основной интерфейс Xcode GUI?Это может установить дополнительное программное обеспечение для вас и очистить.Я сделал это после установки Xcode 10.0, но неделю или более, задолго до обновления до Mojave.
Я заметил, что если ваш GCC установлен в /usr/local/bin
, вы, вероятно, не используете GCC из Xcode;это обычно устанавливается в /usr/bin
.
Я тоже обновился до MacOS 10.14 Mojave и Xcode 10.0.Тем не менее, как система /usr/bin/gcc
, так и система /usr/bin/clang
работают для меня (Apple LLVM version 10.0.0 (clang-1000.11.45.2) Target: x86_64-apple-darwin18.0.0
для обоих.) У меня проблема с моим домашним GCC 8.2.0, не находящим заголовки в /usr/include
, который параллеленВаша проблема с /usr/local/bin/gcc
также не находит заголовки.
Я провел небольшое сравнение, и моя машина Mojave вообще не имеет /usr/include
, но /usr/bin/clang
умеет компилировать нормально.Заголовок (_stdio.h
, с начальным подчеркиванием) был в моем старом /usr/include
;сейчас его нет (отсюда моя проблема с GCC 8.2.0).Я запустил xcode-select --install
, и он сказал "xcode-select: note: install requested for command line developer tools
", а затем запустил установщик графического интерфейса пользователя, который показал мне лицензию, на которую я согласился, и он загрузил и установил инструменты командной строки - или так он утверждал.Затем я запустил Xcode GUI (командное пространство, Xcode, return), и он сказал, что нужно установить еще немного программного обеспечения, но по-прежнему нет /usr/include
.Но я могу скомпилировать с /usr/bin/clang
и /usr/bin/gcc
- и опция -v
предполагает, что они используют
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
Рабочий раствор
Затем Maxxx отметил :
Я нашел способ.Если мы используем Xcode 10, вы заметите, что если вы перейдете к /usr
в Finder, вы больше не увидите папку с именем include, поэтому терминал жалуется на отсутствие заголовочных файлов, которыесодержится в папке «include».В примечаниях к выпуску Xcode 10.0 говорится, что есть пакет:
/Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg
, и вы должны установить этот пакет, чтобы была установлена папка /usr/include
.Тогда вам следует идти.
Если ничего не помогает, прочтите руководство или, в этом случае, примечания к выпуску.Я не ужасно удивлен, обнаружив, что Apple хочет отвернуться от своего наследия Unix, но я разочарован.Если они будут осторожны, они могут прогнать меня.Спасибо за информацию.
После установки пакета с помощью следующей команды в командной строке у меня снова появляется /usr/include
, и мой GCC 8.2.0 снова работает.
open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg
Загрузка инструментов командной строки
Поскольку Vesal указывает на ценный комментарий , вам необходимо загрузить пакет инструментов командной строки для Xcode 10.1 в Mojave 10.14, и выэто можно сделать из:
Вам необходимо войти в систему с Apple ID, чтобы получить возможность загрузки.После завершения загрузки установите пакет инструментов командной строки.Затем установите заголовки, как описано в разделе «Рабочее решение».
Это сработало для меня в Mojave 10.14.1.Я, должно быть, скачал это раньше, но я уже забыл, когда отвечал на этот вопрос.
Обновление до Мохаве 10.14.4 и XCode 10.2
Вкл или около 2019-05-17Я обновил до Mojave 10.14.4, и инструменты командной строки XCode 10.2 также были обновлены (или инструменты командной строки XCode 10.1 были обновлены до 10.2).Команда open
, показанная выше, исправила отсутствующие заголовки.Могут все еще быть приключения с обновлением основного XCode до 10.2, а затем переустановкой инструментов командной строки и пакета заголовков.
Обновление до XCode 10.3 (для Mojave 10.14.6)
В 2019-07-22 я получил уведомление через App Store, что доступно обновление до XCode 10.3 и что оно включает SDK для iOS 12.4, tvOS 12.4, watchOS 5.3 и macOS Mojave 10.14.6.Я установил его на один из своих компьютеров 10.14.5, запустил его и установил дополнительные компоненты, как это было предложено, и, похоже, он оставил /usr/include
без изменений.
Позже в тот же день я обнаружил, что macOS Mojave10.14.6 также был доступен (Системные настройки Update Обновление программного обеспечения) вместе с пакетом утилит командной строки IIRC (он был загружен и установлен автоматически).Установка обновления o / s снова уничтожила /usr/include
, но команда open
в верхней части ответа снова восстановила его.Дата, указанная в файле для команды open
, была 2019-07-15.