Файлы заголовков не найдены GCC

Работа со встроенными C-проектами. Есть библиотеки, включаемые файлы и так далее - для микроконтроллеров. Мне не нужно использовать GCC для хост-машины и ОС (Linux Mint 64 bit). Как правило...

Но теперь я пытаюсь скомпилировать проект mspdebug из Github - конечно, с помощью GCC. И я получаю ошибку в самом начале make:

mspdebug$ make
cc  -DUSE_READLINE  -O1 -Wall -Wno-char-subscripts -ggdb -I. -Isimio -Iformats -Itransport -Idrivers -Iutil -Iui -DLIB_DIR=\"/usr/local/lib/\"  -o util/btree.o -c util/btree.c
util/btree.c:19:20: fatal error: assert.h: No such file or directory
 #include <assert.h>
                    ^
compilation terminated.

Я ищу включения по всем возможным путям (у меня есть их список с помощью команды gcc -v) - также нет файла assert.h, как stdio.h и так далее. За исключением каталогов виртуальных ящиков, есть только одно место (куда GCC не входит в поиск): / usr / lib / syslinux / com32 / include

AFAIK, все стандартные библиотеки и включения устанавливаются вместе с GCC. Поэтому пытаюсь переустановить GCC (4.8.4) - ничего не меняется.

Каков обычный способ предоставить GCC всю необходимую ему стандартную среду?


person drvlas    schedule 25.12.2015    source источник


Ответы (2)


Благодаря правильному направлению, заданному Сэмом Варшавчиком, я нашел информацию в stackoverflow. Итак, я сделал следующее:

1) установленная сборка:

sudo apt-get install build-essential

2) установил libusb (поскольку моя попытка собрать пакет выявила отсутствие usb.h):

sudo apt-get install libusb-dev

И это нормально! Mspdebug (v.023) скомпилирован и успешно протестирован!

Итак, Linux Mint 17.2 (по крайней мере) требует установки некоторых библиотек в GCC, самые простые из которых необходимы для сборки.

person drvlas    schedule 26.12.2015

assert.h не является частью gcc, это часть glibc.

Скорее всего, ваш дистрибутив Linux помещает системные заголовки в отдельный пакет, который вам нужно установить.

Fedora, например, помещает файлы заголовков в пакет glibc-headers. Однако вы не можете использовать Fedora, потому что пакет Fedora gcc зависит от glibc-headers, чтобы гарантировать его включение.

Какой бы дистрибутив Linux вы ни использовали, вам необходимо выяснить, какой пакет дистрибутива будет устанавливать файлы системных заголовков, необходимые для сборки.

person Sam Varshavchik    schedule 25.12.2015
comment
Сэм, я использую Linux Mint 17.2. ОК, буду искать в этом пакете. Просто озадачился самой возможностью отдельной установки GCC и стандартных библиотек. Я сообщу результат. Спасибо! - person drvlas; 26.12.2015