ARM 交叉编译器找不到包含的标准库
Posted
技术标签:
【中文标题】ARM 交叉编译器找不到包含的标准库【英文标题】:Included standard libraries not found by ARM cross-compiler 【发布时间】:2019-01-28 23:23:25 【问题描述】:我正在尝试为 ARM a8 处理器进行交叉编译。我正在将代码库移动到新系统,因此应该使用与原始系统相同的编译器和 makefile 来安装它。
我知道我正在使用 arm-linux-gnueabihf-gcc 编译器。
我已经安装了以下软件包:
> sudo apt install gcc-arm-linux-gnueabihf
> sudo apt install binutils-arm-linux-gnueabi
当我编译以下代码块时:
#include <stdio.h>
// filename: simple.c
int main(void)
printf("I'm printing!\n");
return;
使用这个命令:
> arm-linux-gnueabihf-gcc simple.c
我希望它在这一步编译。我反而得到:
In file included from simple.c:1:0:
/usr/include/stdio.h:27:10: fatal error: bits/libc-header-start.h: No such file or directory
#include <bits/libc-header-start.h>
^~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
任何帮助将不胜感激!谢谢!
【问题讨论】:
我猜你必须安装libc6
库,比如here。 apt-get install libc6-armel-cross libc6-dev-armel-cross
等
我添加了那些说明中指定的库。与我的问题中列出的结果相同。
你最后找到解决办法了吗?我也面临同样的问题...
【参考方案1】:
我认为您缺少的是多库数据包,如果我是对的,这应该可以解决您的问题。
sudo apt install gcc-multilib g++-multilib
【讨论】:
以上是关于ARM 交叉编译器找不到包含的标准库的主要内容,如果未能解决你的问题,请参考以下文章
交叉编译环境在root用户下找不到arm-linux-gcc问题: