![assert.h 没有这样的文件或目录(Ubuntu 20.04 arm64)](https://linux22.com/image/937260/assert.h%20%E6%B2%A1%E6%9C%89%E8%BF%99%E6%A0%B7%E7%9A%84%E6%96%87%E4%BB%B6%E6%88%96%E7%9B%AE%E5%BD%95%EF%BC%88Ubuntu%2020.04%20arm64%EF%BC%89.png)
我尝试通过安装各种库来解决这个问题,但仍然没有效果。有什么建议吗?
我检查了包含路径:
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
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$
如果这些不匹配(我不知道为什么它不能自动正确设置),你可以手动添加路径。您也可以尝试更永久地设置它。
也可以看看
- https://stackoverflow.com/questions/558803/how-to-add-a-default-include-path-for-gcc-in-linux
- https://gcc.gnu.org/onlinedocs/cpp/Search-Path.html
- https://gcc.gnu.org/onlinedocs/gcc/Environment-Variables.html
- https://commandlinefanatic.com/cgi-bin/showarticle.cgi?article=art026
- 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
如果您复制粘贴文本并格式化为代码而不是图像,它会更有用(不过,这会给您带来更多工作)。