如何使用crosstool-ng为raspberry Pi-zero和raspberry的sysroot构建交叉编译器?

问题描述

我正在尝试使用 crosstool-ng 为 Raspberry Pi 零构建交叉编译器。 我需要交叉编译器的原因是来自 raspberry github https://github.com/raspberrypi/tools 的现成工具链是相当旧的版本,但我需要更新的 c++ 标准。

Crosstool-ng 本身有一些预定义的示例,包括 armv6-rpi-linux-gnueabi,我想这对于 raspberry pi zero 来说是最可接受的。

第一个问题是为什么这个样本不使用硬浮动? Pi-zero CPU 支持硬浮动。好吧,我可以为此配置。

主要问题是,当我使用 crosstool-ng 构建自己的工具链时,它不适用于从设备复制的 sysroot

使用我自己构建的工具链,我可以构建简单的 hello-world 应用程序并将其复制到设备,并且它可以工作。当我使用这样的命令构建时:

${CROSS_COMPILE}gcc -v -o test test.c 

所以我得到了真正适用于物理设备的二进制文件。

但我需要更多。当我的应用程序使用从真实设备复制的 sysroot 知识构建时,我需要更复杂的案例。我已在设备上安装了所有必要的开发库,然后使用此 SDCARD 将所有 /usr/ 复制到 my/home/user/mysysroot 网上有很多关于如何正确复制sysroot的说明,我相信我是正确复制的。

如果我用命令行编译:

${CROSS_COMPILE}gcc --sysroot=/home/use/mysysroot -v -o test test.c

然后构建失败。

编译器找不到很多文件,我得到这样的错误 包含在文件中 来自 test.c:1: /home/user/mysysroot/usr/include/stdio.h:27:10: 致命 错误:bits/libc-header-start.h:没有那个文件或目录

我知道我在研究中遗漏了一些东西。我该怎么做才能跨复制的真实 sysroot 进行构建?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...