如何解决如何使用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 举报,一经查实,本站将立刻删除。