Попытался на домашнем компе проверить работу gcc. Компьютер Kernel: 5.4.0-96-generic x86_64 bits: 64 compiler: gcc v: 9.3.0. В Synaptic пишет, что gcc установлен, но при компиляции пишет:
mach.c:1:10: fatal error: stdio.h: Нет такого файла или каталога
1 | #include <stdio.h>
| ^~~~~~~~~
compilation terminated.
Что делать?
Не работает GCC
Как правильно задавать вопросы Правильно сформулированный вопрос и его грамотное оформление способствует высокой вероятности получения достаточно содержательного и по существу ответа. Общая рекомендация по составлению тем: 1. Для начала воспользуйтесь поиском форума. 2. Укажите версию ОС вместе с разрядностью. Пример: LM 19.3 x64, LM Sarah x32 3. DE. Если вопрос касается двух, то через запятую. (xfce, KDE, cinnamon, mate) 4. Какое железо. (достаточно вывод
inxi -Fxz
в спойлере (как пользоваться спойлером смотрим здесь)) или же дать ссылку на hw-probe 5. Суть. Желательно с выводом консоли, логами. 6. Скрин. Просьба указывать 2, 3 и 4 независимо от того, имеет ли это отношение к вопросу или нет. Так же не забываем об общих правилах Как пример вот
-
- Сообщения: 10015
- Зарегистрирован: 27 июн 2017, 13:36
- Решено: 128
- Откуда: Нижний Тагил
- Благодарил (а): 776 раз
- Поблагодарили: 1950 раз
- Контактная информация:
Не работает GCC
OlegMakr, изучить тему Панель форматирования текста в темах/ответах чтоб нормально оформлять сообщения
Покажи полностью код который хочешь компилять.
Покажи команду, которой компиляешь
Покажи полностью код который хочешь компилять.
Покажи команду, которой компиляешь
Не работает GCC
Переустановил gcc и все заработало. Странно что при установке системы gcc устанавливается, но без файлов *.h.
Почему? Это сделано специально? Если кто нибудь знает ответ сообщите.
Почему? Это сделано специально? Если кто нибудь знает ответ сообщите.
-
- Сообщения: 10015
- Зарегистрирован: 27 июн 2017, 13:36
- Решено: 128
- Откуда: Нижний Тагил
- Благодарил (а): 776 раз
- Поблагодарили: 1950 раз
- Контактная информация:
Не работает GCC
А зачем заголовочные файлы нужны?
Правильно для разработки.
А они нужны каждому пользователю?
Нет.
Так нужны они после установки системы?
Нет.
Правильно для разработки.
А они нужны каждому пользователю?
Нет.
Так нужны они после установки системы?
Нет.
-
- Сообщения: 4469
- Зарегистрирован: 21 июн 2017, 18:09
- Решено: 95
- Благодарил (а): 51 раз
- Поблагодарили: 1965 раз
- Контактная информация:
Не работает GCC
Для разработки нужны исходники. А заголовочные файлы - для компиляции стороннего кода, если этот код должен взаимодействовать с уже написанным.
Но нужны для универсальности самой системе. Без них модули ядра не собрать даже автоматически. А модуль ядра собирать, скажем, тому же virtualbox или vmware нужно бывает (самый известный пример). Чтобы работал DKMS они тоже нужны.
Но их наличие в системе крайне приветствуется. Они всегда в пакете linux-headers-<совпадает с пакетом текущего ядра>
-
- Сообщения: 2757
- Зарегистрирован: 19 дек 2017, 18:48
- Решено: 15
- Откуда: Рига
- Благодарил (а): 163 раза
- Поблагодарили: 305 раз
- Контактная информация:
Не работает GCC
Так это же заголовки которые требуют свою версию ядра, а не... к примеру,
что_то_там_написал_на_си.h
.Для этого отдельные заголовки, разве нет?
-
- Сообщения: 10015
- Зарегистрирован: 27 июн 2017, 13:36
- Решено: 128
- Откуда: Нижний Тагил
- Благодарил (а): 776 раз
- Поблагодарили: 1950 раз
- Контактная информация:
Не работает GCC
slant, так речь то шла не про ядерные исходники/хидерсы, а про сишные. Они нафиг не нужны в системе рядовому пользователю. И понадобятся они только если нужно что-то собрать, написанное на с/с++ или что-то сам пишешь на с/с++(ну и естественно собираешь)
-
- Сообщения: 4469
- Зарегистрирован: 21 июн 2017, 18:09
- Решено: 95
- Благодарил (а): 51 раз
- Поблагодарили: 1965 раз
- Контактная информация:
Не работает GCC
Заголовки есть заголовки. Есть у тебя исходник, или только уже скомпилированная либа - это все равно будет .h файл с заголовками. Механизм общий. Нужен чтобы из твоего кода вызывать классы и функции написанные до тебя (ну и еще кое-что). Основным набором такого добра в unix является системная библиотека glibc. Требуется она в общем то практически для всего. Без нее получится запустить разве что само ядро, и ничего больше. Но своего отдельного пакета с заголовками у нее нету (насколько помню). Эти заголовки входят в комплект linux-headers, т.к перекликаются еще и с функциями самого ядра.
Могу наврать с положением, т.к. не отслеживаю эти тонкости постоянно - я не пишу регулярно на C/C++. Но с точки зрения админа - нужно иметь в системе (если она deb-based) хотя бы пакеты linux-headers и build-essentials - сильно экономит нервы.
Рядовому пользователю эти пакеты 100% не нужны в единственном случае - у него уже все стоит, железо не обновляется, DKMS не работает, сторонний софт (не из официальной репы) ставится не будет в принципе. Вот тогда - да, можно без заголовков в системе обходится. В остальных случаях - лучше иметь в наличии.
Могу наврать с положением, т.к. не отслеживаю эти тонкости постоянно - я не пишу регулярно на C/C++. Но с точки зрения админа - нужно иметь в системе (если она deb-based) хотя бы пакеты linux-headers и build-essentials - сильно экономит нервы.
Рядовому пользователю эти пакеты 100% не нужны в единственном случае - у него уже все стоит, железо не обновляется, DKMS не работает, сторонний софт (не из официальной репы) ставится не будет в принципе. Вот тогда - да, можно без заголовков в системе обходится. В остальных случаях - лучше иметь в наличии.
-
- Сообщения: 2757
- Зарегистрирован: 19 дек 2017, 18:48
- Решено: 15
- Откуда: Рига
- Благодарил (а): 163 раза
- Поблагодарили: 305 раз
- Контактная информация:
Не работает GCC
Я могу скомпилить свой сишник без linux-headers
А походу они подтягиваются сами, когда ты ставишь компилятор. Может в разных дистрибутивах поведение разное, т.е там - подтягиваются, а там - нет.
-
- Сообщения: 4469
- Зарегистрирован: 21 июн 2017, 18:09
- Решено: 95
- Благодарил (а): 51 раз
- Поблагодарили: 1965 раз
- Контактная информация:
Не работает GCC
Вопрос лишь в том, что твой сишник делает. Т.е. к каким либам обращается. Так то можно ведь и вообще без include программу написать - весь функционал накодить самолично без единого стороннего вызова.
Вполне вероятный вариант.
Не работает GCC
Напоминаю, что gcc это и есть компилятор программ Си и во всех linux-ах он устанавливается по умолчанию. По крайней мере так пишут в описаниях. В synaptic стояла птичка, что gcc установлен. Я удалил его и установил снова, и все заработало.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 4 гостя