Фатальная ошибка GCC: stdio.h: Нет такого файла или каталога

Я пытаюсь скомпилировать программу на C на OS X 10.9 с GCC 4.9 (экспериментальная). По какой-то причине я получаю следующую ошибку во время компиляции:

gcc: fatal error: stdio.h: No such file or directory

Затем я попробовал простую программу Hello World:

#include <stdio.h>

int main(int argc, const char *argv[])
{
    printf("Hello, world!");
    return 0;
}

Опять после запуска gcc -o ~/hello ~/hello.cЯ получил ту же ошибку. Я использую экспериментальную версию gcc, но кажется неправдоподобным, что будет выпуск, который генерировал ошибки при импорте stdio, Что может быть причиной этой проблемы и как ее можно исправить?

3 ответа

Решение

Mac OS X

У меня тоже была эта проблема (встречалась через компиляторы Macports). Предыдущие версии Xcode позволяли вам устанавливать инструменты командной строки через xcode/Preferences, но xcode5 не предоставляет опцию инструментов командной строки в графическом интерфейсе, поэтому я предположил, что она теперь автоматически включена. Попробуйте запустить эту команду:

xcode-select --install

Ubuntu

(согласно этому ответу)

sudo apt-get install libc6-dev

Alpine Linux

(согласно этому комментарию)

apk add libc-dev

Для Mac OS Mojave принятый ответ больше не работает. При запуске команды xcode-select --install он говорит вам использовать "Обновление программного обеспечения" для установки обновлений.

В этой ссылке обновленный метод:

Откройте Терминал и затем:

cd /Library/Developer/CommandLineTools/Packages/
open macOS_SDK_headers_for_macOS_10.14.pkg

Откроется мастер установки.

Пользователи Ubuntu:

sudo apt-get install libc6-dev

специально разработчики ruby, у которых проблемы с установкой gem install json -v '1.8.2' на их виртуальных машинах

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

У меня такая же проблема. Я установил "XCode: инструменты разработки" из магазина приложений, и это решило проблему для меня.

Я думаю, что эта ссылка поможет: https://itunes.apple.com/us/app/xcode/id497799835?mt=12&ls=1

Благодарим Янна Рамина за совет. Я думаю, что есть лучшее решение со ссылками, но это было легко и быстро.

Удачи!

Другие вопросы по тегам