Здание С++ не работает в OSX 10.9

Обновление:

Я решил проблему в конце, переустановив инструменты командной строки, как показано в этой ссылке . Извините за беспокойство!

Начальный вопрос

Я только что обновился до OSX Mavericks, и я больше не могу заставить компилятор работать. Я использую gcc48 из macports с vim/sb2, и все работает отлично. Теперь любая библиотека, которую я включаю, дает массу ошибок. Я не очень опытный, и я не знаю, что делать, или что искать. Я просто хочу, чтобы он работал, как раньше. Вот что сказано при компиляции базовой программы "привет мир":

In file included from /opt/local/include/gcc48/c++/bits/postypes.h:40:0,
             from /opt/local/include/gcc48/c++/iosfwd:40,
             from /opt/local/include/gcc48/c++/ios:38,
             from /opt/local/include/gcc48/c++/ostream:38,
             from /opt/local/include/gcc48/c++/iostream:39,
             from ceva.cpp:1:
/opt/local/include/gcc48/c++/cwchar:44:19: fatal error: wchar.h: No such file or directory
#include <wchar.h>

Если вам нужна какая-либо информация, скажите мне, и я предоставлю ее вам. Благодарим за терпение!

Ответ 1

XCode 5/Mavericks изменили значения по умолчанию для размещения заголовков.

В предыдущих версиях Mac OS X/XCode вы бы нашли заголовки в /usr/include.

Когда вы создали gcc в более ранней версии, он собрал заголовки из этого местоположения и ищет их там, когда вы пытаетесь создать код.

Проблема в том, что файлов нет; они находятся где-то под /Applications/Xcode.app/Contents/Developer.

Вы можете работать с spec файлом, чтобы заставить его работать последовательно снова, но самое необходимое - перестроить gcc.

Как уже упоминалось, вы можете установить инструменты командной строки с помощью xcode-select --install, который переустановит инструменты разработчика, включая заголовки в /usr/include.

Я стараюсь переустанавливать такие вещи, как gcc, когда я обновляю свою операционную систему, когда сталкиваюсь с другими ошибками из-за изменений в среде. Это просто привычка, которую я сформировал. Это может быть не самая лучшая привычка, но она часто меня спасала от боли.

[добавлено 2017] В качестве дополнения, если вы установите command line tools, то заголовки будут помещены также в /usr/include. Команда для установки инструментов командной строки xcode-select --install - это позволит вам использовать большинство компиляторов без указания местоположения заголовков вручную.

Ответ 2

Вот как я работал над Mac osx Mavericks:

  • Открыть терминал

  • type → xcode-select --install

  • Появятся всплывающие окна с вопросом о средствах установки

  • выберите инструменты установки

  • ждать завершения установки

Ответ 3

Вот ручной метод обновления XCode на OS X Mavericks:

  • Перейдите на сайт разработчиков http://developer.apple.com

  • Затем перейдите в раздел "Загрузки для разработчиков Apple", и есть программа установки инструментов командной строки для Mavericks - здесь ссылка (но вам понадобится учетная запись разработчиков для работы ссылки) http://developer.apple.com/downloads/index.action?q=xcode

Ответ 4

Я использую MacOS Sierra 10.12.4, получил ту же проблему. Я решил это, используя:

/usr/bin/gcc