assert.h нет такого файла или каталога (Ubuntu 20.04 arm64)

Я попытался решить эту проблему, установив различные библиотеки, но все равно ничего не сделал. Совет?

enter image description here

Я проверил путь включения:

enter image description here

parallels@ubuntu-linux-20-04-desktop:~$ locate /assert.h | grep assert.h$
/opt/ros/noetic/include/ros/assert.h
/usr/aarch64-linux-gnu/include/assert.h
/usr/include/assert.h

parallels@ubuntu-linux-20-04-desktop:~$ dpkg -l | grep libc6-dev
ii libc6-dev:arm64          2.31-0ubuntu9.3         arm64     GNU C Library: Development Libraries and Header Files
ii libc6-dev-arm64-cross    2.31-0ubuntu9.2cross1   all       GNU C Library: Development Libraries and Header Files (for cross.compliling)

parallels@ubuntu-linux-20-04-desktop:~$ dpkg -L libc6-dev-arm64-cross | grep assert.h
/usr/aarch64-linux-gnu/include/assert.h
1
задан 7 May 2021 в 08:16

1 ответ

Установите libc6-dev-arm64-cross с

sudo apt-get install libc6-dev-arm64-cross

Список файлов включает assert.h. Поэтому, если вы установите этот пакет, этот файл будет в вашей системе.

Если при компиляции заголовок не найден, то это потому, что его нет в пути поиска. Поэтому вам следует уточнить, какие именно команды/пакет вы использовали для попытки компиляции.

Проверьте путь include с помощью

avr-gcc -xc -E -v -

или

echo | gcc -Wp,-v -x c++ - -fsyntax-only

Также проверьте, где находится assert.h с помощью

sudo updatedb
locate /assert.h | grep assert.h$

Если они не совпадают (я не знаю, почему это не устанавливается правильно автоматически), в качестве обходного пути вы можете добавить путь вручную. Вы также можете попробовать установить его более постоянно.

См. также

  1. https://stackoverflow.com/questions/558803/how-to-add-a-default-include-path-for-gcc-in-linux
  2. https://gcc.gnu.org/onlinedocs/cpp/Search-Path.html
  3. https://gcc.gnu.org/onlinedocs/gcc/Environment-Variables.html
  4. https://commandlinefanatic.com/cgi-bin/showarticle.cgi?article=art026
  5. https://www.avrfreaks.net/forum/how-does-avr-gccg-know-default-include-directories

Это поможет, если вы опубликуете вывод следующих команд

dpkg -l | grep libc6-dev
dpkg -L libc6-dev-arm64-cross | grep assert.h

Гораздо полезнее, если вы скопируете-вставите текст и оформите его как код, а не как изображение (правда, для вас будет немного больше работы).

1
ответ дан 7 May 2021 в 17:41

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

Похожие вопросы: