При попытке компиляции программы на свежей установки Linux Mint возникла ошибка:
fatal error: stdlib.h: Нет такого файла или каталога
Как написано в самой ошибке, отсутствует файл, необходимый во время компиляции. Этим файлом является stdlib.h, расширение которого .h говорит о том, что это хедер (заголовочный файл).
Очевидное решение данной проблемы — установить пакет, содержащий этот файл. Нужно только знать, что это за пакет.
Прежде чем перейти к установке пакетов, посмотрим на полный лог данной ошибки, возникшей при использовании команды make:
make -C osdep make[1]: Вход в каталог `/home/mial/opt/mdk3-master/osdep' Building for Linux make[2]: Вход в каталог `/home/mial/opt/mdk3-master/osdep' gcc -g -W -Wall -Wextra -O3 -Wno-strict-aliasing -D_FILE_OFFSET_BITS=64 -D_REVISION=mdk3-v6 -fPIC -I.. -c -o osdep.o osdep.c osdep.c:21:20: fatal error: stdlib.h: Нет такого файла или каталога #include <stdlib.h> ^ compilation terminated. make[2]: *** [osdep.o] Ошибка 1 make[2]: Выход из каталога `/home/mial/opt/mdk3-master/osdep' make[1]: *** [all] Ошибка 2 make[1]: Выход из каталога `/home/mial/opt/mdk3-master/osdep' make: *** [osd] Ошибка 2
Проблема в отсутствии файла, который имеется в пакете libc6-dev. Можно установить набор файлов, необходимых для компиляции программ в Linux, это делается командой:
sudo apt-get install build-essential
При этом ставится достаточно много пакетов. Если по какой-то причине вы хотите минимизировать количество установленных пакетов, то вместо приведённой выше команды достаточно сделать так:
sudo apt-get install g++
Или даже так (будет установлен один единственный пакет, который содержит отсутствующий файл):
sudo apt-get install libc6-dev
Из трёх приведённых команд нужно выбрать только одну — я рекомендую первую. Это позволит навсегда избавиться от ошибки «fatal error: stdlib.h: Нет такого файла или каталога».
Связанные статьи:
- Решение проблемы с ошибкой make: x86_64-w64-mingw32-gcc: Команда не найдена (100%)
- Решение проблемы с ошибкой fatal error: ffi.h: Нет такого файла или каталога (100%)
- Решение проблемы с ошибкой ValueError: --enable-jpeg requested but jpeg not found, aborting. (100%)
- Решение проблемы с предупреждением InsecurePlatformWarning: A true SSLContext object is not available. (100%)
- Решение проблемы с ошибкой fatal error: libnfnetlink/linux_nfnetlink.h: Нет такого файла или каталога (100%)
- Как определить, почему Linux загружается в Emergency mode (RANDOM - 50%)
нужно установить glibc-devel