Не работает 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 независимо от того, имеет ли это отношение к вопросу или нет. Так же не забываем об общих правилах Как пример вот
no avatar

Автор темы
OlegMakr
Сообщения: 4
Зарегистрирован: 24 мар 2022, 21:29
Контактная информация:

Не работает GCC

#1

24 мар 2022, 21:46

Попытался на домашнем компе проверить работу 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.
Что делать?

Аватара пользователя

rogoznik
Сообщения: 10015
Зарегистрирован: 27 июн 2017, 13:36
Решено: 128
Откуда: Нижний Тагил
Благодарил (а): 776 раз
Поблагодарили: 1950 раз
Контактная информация:

Не работает GCC

#2

24 мар 2022, 21:50

OlegMakr, изучить тему Панель форматирования текста в темах/ответах чтоб нормально оформлять сообщения
Покажи полностью код который хочешь компилять.
Покажи команду, которой компиляешь
ИзображениеИзображение

no avatar

Автор темы
OlegMakr
Сообщения: 4
Зарегистрирован: 24 мар 2022, 21:29
Контактная информация:

Не работает GCC

#3

25 мар 2022, 21:06

Какая разница какой код?

no avatar

Автор темы
OlegMakr
Сообщения: 4
Зарегистрирован: 24 мар 2022, 21:29
Контактная информация:

Не работает GCC

#4

25 мар 2022, 21:46

Переустановил gcc и все заработало. Странно что при установке системы gcc устанавливается, но без файлов *.h.
Почему? Это сделано специально? Если кто нибудь знает ответ сообщите.

Аватара пользователя

vir0id
Сообщения: 2757
Зарегистрирован: 19 дек 2017, 18:48
Решено: 15
Откуда: Рига
Благодарил (а): 163 раза
Поблагодарили: 305 раз
Контактная информация:

Не работает GCC

#5

26 мар 2022, 06:27

OlegMakr писал(а):
25 мар 2022, 21:46
Странно что при установке системы gcc устанавливается, но без файлов *.h
"При установке" системы, её нужно обновлять, как бы. А уж потом всё остальное делать.

Аватара пользователя

rogoznik
Сообщения: 10015
Зарегистрирован: 27 июн 2017, 13:36
Решено: 128
Откуда: Нижний Тагил
Благодарил (а): 776 раз
Поблагодарили: 1950 раз
Контактная информация:

Не работает GCC

#6

26 мар 2022, 08:41

А зачем заголовочные файлы нужны?
Правильно для разработки.
А они нужны каждому пользователю?
Нет.
Так нужны они после установки системы?
Нет.
ИзображениеИзображение

Аватара пользователя

slant
Сообщения: 4469
Зарегистрирован: 21 июн 2017, 18:09
Решено: 95
Благодарил (а): 51 раз
Поблагодарили: 1965 раз
Контактная информация:

Не работает GCC

#7

26 мар 2022, 13:05

rogoznik писал(а):
26 мар 2022, 08:41
А зачем заголовочные файлы нужны?
Правильно для разработки.
Для разработки нужны исходники. :) А заголовочные файлы - для компиляции стороннего кода, если этот код должен взаимодействовать с уже написанным.
rogoznik писал(а):
26 мар 2022, 08:41
А они нужны каждому пользователю?
Нет.
Но нужны для универсальности самой системе. Без них модули ядра не собрать даже автоматически. А модуль ядра собирать, скажем, тому же virtualbox или vmware нужно бывает (самый известный пример). Чтобы работал DKMS они тоже нужны.
rogoznik писал(а):
26 мар 2022, 08:41
Так нужны они после установки системы?
Нет.
Но их наличие в системе крайне приветствуется. Они всегда в пакете linux-headers-<совпадает с пакетом текущего ядра>

Аватара пользователя

vir0id
Сообщения: 2757
Зарегистрирован: 19 дек 2017, 18:48
Решено: 15
Откуда: Рига
Благодарил (а): 163 раза
Поблагодарили: 305 раз
Контактная информация:

Не работает GCC

#8

26 мар 2022, 16:45

slant писал(а):
26 мар 2022, 13:05
Без них модули ядра не собрать даже автоматически.
Так это же заголовки которые требуют свою версию ядра, а не... к примеру, что_то_там_написал_на_си.h.
Для этого отдельные заголовки, разве нет?

Аватара пользователя

rogoznik
Сообщения: 10015
Зарегистрирован: 27 июн 2017, 13:36
Решено: 128
Откуда: Нижний Тагил
Благодарил (а): 776 раз
Поблагодарили: 1950 раз
Контактная информация:

Не работает GCC

#9

26 мар 2022, 18:39

slant, так речь то шла не про ядерные исходники/хидерсы, а про сишные. Они нафиг не нужны в системе рядовому пользователю. И понадобятся они только если нужно что-то собрать, написанное на с/с++ или что-то сам пишешь на с/с++(ну и естественно собираешь)
ИзображениеИзображение

Аватара пользователя

slant
Сообщения: 4469
Зарегистрирован: 21 июн 2017, 18:09
Решено: 95
Благодарил (а): 51 раз
Поблагодарили: 1965 раз
Контактная информация:

Не работает GCC

#10

26 мар 2022, 18:56

Заголовки есть заголовки. Есть у тебя исходник, или только уже скомпилированная либа - это все равно будет .h файл с заголовками. Механизм общий. Нужен чтобы из твоего кода вызывать классы и функции написанные до тебя (ну и еще кое-что). Основным набором такого добра в unix является системная библиотека glibc. Требуется она в общем то практически для всего. Без нее получится запустить разве что само ядро, и ничего больше. Но своего отдельного пакета с заголовками у нее нету (насколько помню). Эти заголовки входят в комплект linux-headers, т.к перекликаются еще и с функциями самого ядра.

Могу наврать с положением, т.к. не отслеживаю эти тонкости постоянно - я не пишу регулярно на C/C++. Но с точки зрения админа - нужно иметь в системе (если она deb-based) хотя бы пакеты linux-headers и build-essentials - сильно экономит нервы. :)

Рядовому пользователю эти пакеты 100% не нужны в единственном случае - у него уже все стоит, железо не обновляется, DKMS не работает, сторонний софт (не из официальной репы) ставится не будет в принципе. Вот тогда - да, можно без заголовков в системе обходится. В остальных случаях - лучше иметь в наличии.

Аватара пользователя

vir0id
Сообщения: 2757
Зарегистрирован: 19 дек 2017, 18:48
Решено: 15
Откуда: Рига
Благодарил (а): 163 раза
Поблагодарили: 305 раз
Контактная информация:

Не работает GCC

#11

26 мар 2022, 19:18

slant писал(а):
26 мар 2022, 18:56
Без нее получится запустить разве что само ядро, и ничего больше. Но своего отдельного пакета с заголовками у нее нету (насколько помню)
Я могу скомпилить свой сишник без linux-headers
rogoznik писал(а):
26 мар 2022, 18:39
Они нафиг не нужны в системе рядовому пользователю
А походу они подтягиваются сами, когда ты ставишь компилятор. Может в разных дистрибутивах поведение разное, т.е там - подтягиваются, а там - нет.

Аватара пользователя

slant
Сообщения: 4469
Зарегистрирован: 21 июн 2017, 18:09
Решено: 95
Благодарил (а): 51 раз
Поблагодарили: 1965 раз
Контактная информация:

Не работает GCC

#12

26 мар 2022, 21:30

vir0id писал(а):
26 мар 2022, 19:18
Я могу скомпилить свой сишник без linux-headers
Вопрос лишь в том, что твой сишник делает. Т.е. к каким либам обращается. Так то можно ведь и вообще без include программу написать - весь функционал накодить самолично без единого стороннего вызова. :)
vir0id писал(а):
26 мар 2022, 19:18
А походу они подтягиваются сами, когда ты ставишь компилятор. Может в разных дистрибутивах поведение разное, т.е там - подтягиваются, а там - нет.
Вполне вероятный вариант.

no avatar

Автор темы
OlegMakr
Сообщения: 4
Зарегистрирован: 24 мар 2022, 21:29
Контактная информация:

Не работает GCC

#13

29 мар 2022, 20:48

Напоминаю, что gcc это и есть компилятор программ Си и во всех linux-ах он устанавливается по умолчанию. По крайней мере так пишут в описаниях. В synaptic стояла птичка, что gcc установлен. Я удалил его и установил снова, и все заработало.

Аватара пользователя

WWolf
Сообщения: 3873
Зарегистрирован: 14 фев 2018, 00:51
Решено: 28
Откуда: Краснодар
Благодарил (а): 1682 раза
Поблагодарили: 1206 раз
Контактная информация:

Не работает GCC

#14

29 мар 2022, 21:03

OlegMakr, значит до этого что-то грохнул неподумав...

Ответить

Вернуться в «Программирование, скриптинг, виртуализация»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 4 гостя