ubuntu22.04 安装gcc-4.9编译 hi3559av100

由于电脑安装20.04无法安装无线网卡驱动,不得已升级使用22.04版本,由我是WIN10 和 ubuntu22.04双系统使用,主要用来编译hi3559av100和hi3519dv500的SDK。

系统安装和基本设置部分还是比较顺利的,配置hi3519Dv500的编译环境也比较顺利,对照着海思提供的指导手册即可顺利完成。但是搭建hi3559av100的编译环境折腾了2天!原因在于gcc-4.9 编译和安装上。折腾了2天,尝试的方法很多,不能详细记录,仅仅为大家提供点思路,减少折腾时间:

  1. 直接apt-get install gcc-4.9 安装不了,所以我找了一包gcc-4.9的源码(包含5个依赖库https://download.youkuaiyun.com/download/lingzhaoli/12234761)

2.系统直接apt-get gcc 安装的版本为gcc-11,编译gcc-4.9.0通不过,于是参考添加源,来实现安装 apt-get install gcc-7 g+±7:
https://blog.youkuaiyun.com/weixin_42570231/article/details/134385535)

3.使用gcc-7 编译gcc-4.9 通过了,中间有2个错误,
我编译的配置安装位置:/usr/local/gcc-4.9
./configure --prefix=/usr/local/gcc-4.9 --enable-threads=posix --disable-checking --disable-multilib --enable-languages=c,c++ --disable-libsanitizer

执行 make ,make install

错误1:
fns.gperf:101:1: error: ‘const char* libc_name_p(const char*, unsigned int)‘ redecl
修改:
进入/opt/gcc-4.9.0/gcc/cp/目录
修改三个文件分别是:
cfns.gperf、cfns.h、except.c
参考:https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=ec1cc0263f156f70693a62cf17b254a0029f4852

错误2:
…/…/…/gcc-5.4.0/libgcc/shared-object.mk:14: recipe for target ‘unwind-dw2.o’ failed
make[3]: *** [unwind-dw2.o] Error 1
修改方法:
修改文件 md-unwind-support.h 第61行,不知道文件位置可以用 find -name 进行查找:
struct ucontext *uc_ = context->cfa;
修改为
struct ucontext_t *uc_ = context->cfa;

4.安装好gcc ,切换到 gcc-4.9 进行编译hi3559av100 sdk

update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 0 --slave /usr/bin/g++ g++ /usr/bin/g+±11

update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 0 --slave /usr/bin/g++ g++ /usr/bin/g+±7

update-alternatives --install /usr/bin/gcc gcc /usr/local/gcc-4.9/bin/gcc 20 --slave /usr/bin/g++ g++ /usr/local/gcc-4.9/bin/g++

是否切换成功可以: update-alternatives --config gcc 查看

5.开始编译hi3559av100 SDK,由于SDK包在之前ubuntu20.04 上已经编译折腾过了,报错的几个点已经修改。
这里面新增的错误是:

make[3]: arm-none-eabi-gcc: No such file or directory

需要 apt install gcc-arm-none-eabi ,但是系统提供的源,没有这个库!
折腾议论后,增加了下面两个源就可以安装了
vim /etc/apt/sources.list

后面添加:
deb http://dk.archive.ubuntu.com/ubuntu/ xenial main
deb http://dk.archive.ubuntu.com/ubuntu/ xenial universe
然后再添加公钥
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 40976EAF437D05B5
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3B4FE6ACC0B21F32
再次安装成功
apt update
apt install gcc-arm-none-eabi

再次编译SDK成功!
---------finish osdrv work

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值