交叉编译树莓派的 aria2c
aria2c 1.19.x 下载https链接始终有问题,所以最近想升级一下
惯例,下源码,编译,不过报错了。expected type-specifier before string constant
看到这里说是g++版本太低。自己懒,不太想折腾树莓派环境了,所以准备交叉编译一个。树莓派官方提供了交叉编译工具,所以很方便。
首先,随便创建一个文件夹,比如rpi
cd ~
mkdir rpi
cd rpi
之后,git clone交叉编译工具
git clone git://github.com/raspberrypi/tools.git
clone 之后可以通过pull更新tools
cd ~/rpi/tools
git pull origin
添加环境变量, 可以加在 .bashrc 中
# for 32 bit
export PATH=$PATH:$HOME/rpi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin
# for 64 bit
export PATH=$PATH:$HOME/rpi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin
更新环境变量
source ~/.bashrc
这样交叉编译环境就配置完成了。之后编译aria2c
首先下载最新的release源码,这里下载的是1.24版本的,然后解压
wget https://github.com/aria2/aria2/releases/download/release-1.24.0/aria2-1.24.0.tar.gz
tar zxvf aria2-1.24.0.tar.gz
cd aria2-1.24.0
之后进行configure,貌似libxml2有点问题(见这里),所以要加上--without-libxml2
选项用Expat代替libxml2, host指编译之后是要运行在树莓派上的。
./configure --host=arm-linux-gnueabihf --without-libxml2
如果想要静态链接,则执行
./configure --host=arm-linux-gnueabihf --without-libxml2 ARIA2_STATIC=yes
configure之后make
就可以了, 编译好的文件放在src/aria2c
里。有点大(64mb),下载后放到树莓派中可以strip
一下去除符号表以减少程序体积(缩小到了2.4mb)。
strip -s aria2c
之后就可以愉快地运行了。
aria2c的配置可以见这里
PS
发现树莓派的交叉编译链没有openssl,所以还需要自己找源码编译
具体过程可以见这个脚本