assert.h 没有这样的文件或目录(Ubuntu 20.04 arm64)

assert.h 没有这样的文件或目录(Ubuntu 20.04 arm64)

我尝试通过安装各种库来解决这个问题,但仍然没有效果。有什么建议吗?

在此处输入图片描述

我检查了包含路径:

在此处输入图片描述

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

安装libc6-dev-arm64-cross

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

文件列表包括assert.h。因此,如果您安装此包,该文件将存在于您的系统中。

如果在编译时找不到标头,那是因为它不在搜索路径中。因此,您应该明确说明您尝试编译时使用了哪些命令/包。

检查你的包含路径

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

如果您复制粘贴文本并格式化为代码而不是图像,它会更有用(不过,这会给您带来更多工作)。

相关内容