您尚未登录。

楼主 # 2025-02-21 11:43:19

piaoxuebingfeng
会员
注册时间: 2023-03-01
已发帖子: 12
积分: 62

分享一个F1C200S交叉编译工具包

## 问题说明

  我最近在对 F1C200S 的应用程序进行交叉编译的过程中,发现使用 gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabi 这个交叉编译工具包编译出来的应用程序无法在F1C200S上面正常运行,会报 “Segmentation fault  ”
  查了一下论坛里面的帖子, https://whycan.com/t_3265.html ,这里面讨论到是因为工具链的问题,然后推荐了一款低版本的工具链:
http://sources.buildroot.net/toolchain-external-codesourcery-arm/arm-2014.05-29-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
  我做了一下验证,发现使用这个低版本的gcc工具链可以编译 hello.c ,能够正常运行了,但是在编译 lvgl9 的工程的时候 ,还会报错,可能是gcc版本比较低导致的。

于是我便找了一个 buildroot中使用的gcc-8.4.0  的版本,这个这个版本我验证测试也是能够正常编译,并导入到开发板上正常运行的,下面分享一下这个交叉编译工具包。
arm-buildroot-linux-gnueabi.tar.gz

离线

#1 2025-02-24 23:20:39

nlive
会员
注册时间: 2024-08-14
已发帖子: 6
积分: 51

Re: 分享一个F1C200S交叉编译工具包

不同版本gcc编译的不兼容多说是因为gblic版本不同,同版本的gcc也可以用不同版本glibc,生成的gcc可能编译偶无法运行。

ARM平台终极解决办法:

1.用buildroot openwrt等生成gcc交叉编译工具, 它会自动编译系统rootfs kernel 等,再用这个gcc去编译应用。

2.如果buildroot编译过程 出现 错误就修改 kernel或者 package 里面的源码,添加补丁。

3.下载不同版本的buildroot替换package里面的内容修改软件版本,以适应新版本gcc。

4.大多数出现编译错误都可以在网上找到解决办法,或者kernel已经发布了补丁下载即可。

离线

#2 2025-02-25 14:58:20

DDER
会员
注册时间: 2023-08-16
已发帖子: 33
积分: 49

Re: 分享一个F1C200S交叉编译工具包

应该是kernel编译用的是gcc-linaro-7.2.1
但是buildroot用的是openwrt这些。两者用的编译器不同。

离线

#3 2025-02-26 16:10:03

hameyou
会员
注册时间: 2018-04-15
已发帖子: 208
积分: 10.5

Re: 分享一个F1C200S交叉编译工具包

可能编译出来的C库版本不一样,还是要看系统用的什么编译器版本

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn