【命令中的home路径是你自己的账号下载文件路径,有几个错误不知道正确的处理方法,自己瞎改的】
[我的机器Ubuntu版本]
uname -a
Linux ubuntu 5.0.0-38-generic #41-Ubuntu SMP Tue Dec 3 00:27:35 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
[交叉编译工具版本]
aarch64-linux-gcc --version
aarch64-linux-gcc (ctng-1.23.0-150g-FA) 6.4.0
Copyright © 2017 Free Software Foundation, Inc.
libcap、ncurses、libuuid、util-linux最好下载2017或者以前的版本,不要太旧。
[配置交叉编译工具]
设置非root用户交叉编译工具路径
vim ~/.bashrc
连续按大写GG到最后一行,添加下面命令
export PATH=/opt/FriendlyARM/toolchain/6.4-aarch64/bin/:$PATH
更新环境变量
source ~/.bashrc
设置root用户交叉编译工具路径
sudo su
vim /root/.bashrc
连续按大写GG到最后一行,添加下面命令
export PATH=/opt/FriendlyARM/toolchain/6.4-aarch64/bin/:$PATH
更新环境变量
source /root/.bashrc
[查看库文件路径]
aarch64-linux-gcc -print-file-name=libc.so
/opt/FriendlyARM/toolchain/6.4-aarch64/aarch64-cortexa53-linux-gnu/sysroot/usr/lib/…/lib64/libc.so
把lib/…/lib64/libc.so去掉作为–prefix=/opt/FriendlyARM/toolchain/6.4-aarch64/aarch64-cortexa53-linux-gnu/sysroot/usr
[编译libcap]libcap下载地址
wget https://mirrors.edge.kernel.org/pub/linux/libs/security/linux-privs/libcap2/libcap-2.25.tar.xz
tar xf libcap-2.25.tar.xz
cd libcap-2.25/
make prefix=/home/systemd/usr \
exec_prefix=/home/systemd/usr \
BUILD_CC=gcc \
CC=aarch64-linux-gcc \
AR=aarch64-linux-ar \
RANLIB=aarch64-linux-ranlib
sudo su
make prefix=/home/systemd/usr \
exec_prefix=/home/systemd/usr \
BUILD_CC=gcc \
CC=aarch64-linux-gcc \
AR=aarch64-linux-ar \
RANLIB=aarch64-linux-ranlib \
RAISE_SETFCAP=no install
切换新目录
[编译ncurses宽字符]ncurses下载地址
wget https://ftp.gnu.org/gnu/ncurses/ncurses-6.0.tar.gz
tar xf ncurses-6.0.tar.gz
cd ncurses-6.0/
./configure --host=aarch64-linux \
--prefix=/home/systemd/usr \
--exec-prefix=/home/systemd/usr \
--with-termlib \
--enable-widec \
--disable-stripping \
--with-shared \
--with-cxx-shared \
--without-manpages
报错:在./include/curses.tail中删除掉 /* generated */这个注释
make -j8
sudo su
make install
[编译ncurses非宽字符]
./configure --host=aarch64-linux \
--prefix=/home/systemd/usr \
--exec-prefix=/home/systemd/usr \
--with-termlib \
--disable-stripping \
--with-shared \
--with-cxx-shared \
--without-manpages
make -j8
sudo su