1. 编译平台准备工作
下载arm-none-linux-gnueabi-gcc
下载transmission-2.94
新建ARM文件夹
解压arm-none-linux-gnueabi-gcc和transmission-2.94到ARM文件夹
设置编译平台环境变量
1
2
3export PATH="/root/ARM/external-toolchain/bin:$PATH"
export cross=arm-none-linux-gnueabi-
export CC="${cross}gcc"编译的时候一定要注意看log, 是arm-none-linux-gnueabi-gcc编译的才是正确的
2. 目标平台开始编译
2.1 transmission
1 | ./configure --host="arm-none-linux-gnueabi" --prefix=/usr/local --without-gtk --without-systemd_daemon --disable-mac --enable-utp --disable-nls --enable-utp --enable-lightweight --disable-cli --enable-daemon PKG_CONFIG="/usr/bin/pkg-config" PKG_CONFIG_PATH="/root/ARM/opt/lib/pkgconfig" |
git clone下来的需要执行./autogen.sh
1 | ./autogen.sh --host="arm-none-linux-gnueabi" --prefix=/usr/local --without-gtk --without-systemd --disable-mac --enable-utp --disable-nls --enable-utp --enable-lightweight --disable-cli --enable-daemon PKG_CONFIG="/usr/bin/pkg-config" PKG_CONFIG_PATH="/root/ARM/opt/lib/pkgconfig" |
错误1. 出现No package ‘libevent’ found ->安装libevent
错误2. fatal error: curl/curl.h: No such file or directory -> 安装curl
错误3. rpcimpl.c:16:18: fatal error: zlib.h: No such file or directory ->安装zlib
错误4. fatal error: systemd/sd-daemon.h: No such file or directory ->需要安装systemd, 此处强烈建议使用--without-systemd_daemon
选项, 否则编译systemd又是一堆依赖
2.2 libevent
1 | wget https://github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz |
2.3 libcurl
1 | wget https://curl.haxx.se/download/curl-7.61.1.tar.gz |
错误1. configure: error: /root/ARM/opt is a bad –with-ssl prefix! -> 安装openssl
2.4 openssl
1 | wget https://www.openssl.org/source/openssl-1.1.1.tar.gz |
2.5 zlib
1 | wget http://zlib.net/zlib-1.2.11.tar.gz |
3. 编译systemd
参考: https://wiki.beyondlogic.org/index.php?title=Cross_Compiling_SystemD_for_ARM
1. libkmod
1 | wget https://www.kernel.org/pub/linux/utils/kernel/kmod/kmod-17.tar.gz |
2. libffi
1 | wget https://sourceware.org/ftp/libffi/libffi-3.2.1.tar.gz |
3. pcre
1 | wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.42.tar.gz |
4. libattr
1 | wget https://download-mirror.savannah.gnu.org/releases/attr/attr-2.4.48.tar.gz |
5. libcap
1 | wget https://www.kernel.org/pub/linux/libs/security/linux-privs/libcap2/libcap-2.24.tar.xz |
make不成功修改文件:
1 | vi libcap/cap_file.c |
6. glibc(没有成功….)
1 | wget http://ftp.gnome.org/pub/gnome/sources/glib/2.52/glib-2.52.3.tar.xz |
4. 目标平台运行
systemd编译失败, 可在编译transmission的时候去掉systemd
目标平台执行transmission的环境变量(可忽略)
1 | export PATH=/dev/opt/bin:$PATH |