Я попытался решить эту проблему, установив различные библиотеки, но все равно ничего не сделал. Совет?
Я проверил путь включения:
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
Установите 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$
Если они не совпадают (я не знаю, почему это не устанавливается правильно автоматически), в качестве обходного пути вы можете добавить путь вручную. Вы также можете попробовать установить его более постоянно.
См. также
Это поможет, если вы опубликуете вывод следующих команд
dpkg -l | grep libc6-dev
dpkg -L libc6-dev-arm64-cross | grep assert.h
Гораздо полезнее, если вы скопируете-вставите текст и оформите его как код, а не как изображение (правда, для вас будет немного больше работы).