在容器中创建交叉编译环境

对于需要依赖很多库的跨平台源码编译,交叉编译环境是比较难搭建的,主流的方法有两种,第一是使用已经编译好的交叉编译工具链,比如linaro提供的arm的工具链,这种方法对于编译一般的源码应该是足够了的,但是有些需要很多依赖库的大的项目就力不从心了,如果缺少库,手动添加是比较繁琐和困难的;第二种就是自己从源码编译交叉工具,这种就要求比较高了,如果你是高手,也不嫌麻烦那么再多的依赖你也能搞的定。

这里我介绍一种操作非常简单交叉编译工具安装方法。方法的基础是muti-arch dpkg。也就是利用dpkg支持多个架构的特性,比如在amd64的Debian中可以install arm的包。目前我能测试可用的只有Debian可以。所以我们需要在容器中搭建环境。我们以arm64为例。

首先我们可以进入Debian容器内,

docker run -it debian bash

给dpkg添加新架构:

dpkg --add-architecture arm64

给更换下载源:

echo "deb http://deb.debian.org/debian stable main" > /etc/apt/sources.list
echo "deb http://deb.debian.org/debian stable-updates main" >> /etc/apt/sources.list
echo "deb http://security.debian.org stable/updates main" >> /etc/apt/sources.list
apt update

更新源完成后就可以为arm64下载包了。但是gcc还是要交叉编译的版本,

apt install gcc-aarch64-linux-gnu

如果编译需要arm64的libglib2.0-dev,假如没有现在的环境,你是很难得到这个包的。在这个环境中这非常容易

apt install libglib2.0-dev:arm64

需要下载arm64版本的包时只需在包的后面加上“:arm64”即可非常方便。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值