验证确保已安装交叉编译工具链,检查工具链路径:
确保aarch64-linux-gnu-gcc、aarch64-linux-gnu-ld等工具在PATH中,且无主机工具链污染:
which aarch64-linux-gnu-gcc

如果工具链路径未正确识别,可在Configure后修改Makefile,显式指定链接器:
# 在Makefile中找到以下变量并修改CC= aarch64-linux-gnu-gccAR= aarch64-linux-gnu-arLD= aarch64-linux-gnu-ld
若安装后面的三个基础库,发现读写执行等权限不足,就使用"sudo chmod 777 -R 文件夹"对整个文件夹及其子文件可读、可写、可执行的权限
sudo chmod 777 -R 文件夹名称
1、下载
pcre-8.45.tar.gz
、
openssl-1.1.1w
、
zlib-1.3.1
1.1 下载pcre-8.45.tar.gz
wget http://mirror.dotsrc.org/tinycorelinux/14.x/x86_64/tcz/src/pcre/pcre-8.45.tar.bz2

检查文件大小:
ls -lh pcre-8.45.tar.bz2

解压pcre-8.45.tar.bz2:
tar -xvf pcre-8.45.tar.bz2



编译:
./configure --host=aarch64-linux-gnu --prefix=/opt/rootfs-arm64/usr CC=aarch64-linux-gnu-gcc CXX=aarch64-linux-gnu-g++
安装:
sudo make -j$(nproc)sudo make install
安装完成后,检查文件是否写入成功:
ls -l /opt/rootfs-arm64/usr/lib/libpcre*.so

1.2 安装
openssl-1.1.1w
wget https://github.com/openssl/openssl/archive/refs/tags/OpenSSL_1_1_1w.tar.gz -O openssl-1.1.1w.tar.gz


验证文件大小:
ls -lh openssl-1.1.1w.tar.gz

确认压缩包内是否含有Configure
tar -tzvf openssl-1.1.1w.tar.gz | grep Configure

解压文件:
tar -zxvf openssl-1.1.1w.tar.gz


编译前先清理残留文件:
make distclean # 清理所有编译中间文件(比make clean更彻底)# 或手动删除残留文件rm -rf crypto/*.o apps/*.o *.so *.a
编译:
./Configure linux-aarch64 --prefix=/opt/rootfs-arm64/usr --cross-compile-prefix=aarch64-linux-gnu- no-asm shared
安装:
sudo make -j$(nproc)sudo make install_sw
检查检查文件是否存在:
ls -l /opt/rootfs-arm64/usr/bin/openssl

ls -l /opt/rootfs-arm64/usr/lib/engines-1.1/capi.so

测试运行:
cd /opt/rootfs-arm64/usr/bin/openssl version

将安装路径加入环境变量 PATH 和 LD_LIBRARY_PATH::
export PATH=/opt/rootfs-arm64/usr/bin:$PATHexport LD_LIBRARY_PATH=/opt/rootfs-arm64/usr/lib:$LD_LIBRARY_PATH
1.3 下载
zlib-1.3.1
wget https://zlib.net/fossils/zlib-1.3.1.tar.gz

检查文件大小:
ls -lh zlib-1.3.1.tar.gz

解压文件:
tar -zxvf zlib-1.3.1.tar.gz


编译:
CC=aarch64-linux-gnu-gcc AR=aarch64-linux-gnu-ar RANLIB=aarch64-linux-gnu-ranlib ./configure --prefix=/opt/rootfs-arm64/usr
安装:
sudo make -j$(nproc)sudo make install
验证安装:
ls -l /opt/rootfs-arm64/usr/lib/libz.so.1*

配置环境变量
临时生效:
export LD_LIBRARY_PATH=/opt/rootfs-arm64/usr/lib:$LD_LIBRARY_PATHexport PATH=/opt/rootfs-arm64/usr/bin:$PATHecho '/opt/rootfs-arm64/usr/lib' sudo tee /etc/ld.so.conf.d/zlib.conf sudo ldconfig

若报错:PATH环境变量未包含/bin和/usr/bin,导致系统找不到sudo命令
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:$PATH
验证:
which sudo

编辑用户级配置文件(如~/.bashrc或~/.profile):
nano ~/.bashrc
在文件末尾添加以下行(确保包含基础路径):
export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:$PATH"
保存后生效:
source ~/.bashrc
修复PATH和权限后,重新运行:
echo '/opt/rootfs-arm64/usr/lib' | sudo tee /etc/ld.so.conf.d/zlib.confsudo ldconfig # 更新库缓存
检查PATH是否包含基础路径:
echo $PATH | tr ':' 'n' | grep -E '^/bin|^/usr/bin'

测试sudo命令:
sudo -v # 验证权限(无报错即成功)