1.拿到对应厂商给的交叉包,如:
arm-rockchip830-linux-uclibcgnueabihf.tar.xz
2.上传到对应的服务器上(x86的centos或者ubuntu都可以),解压到目录
3.配置环境变量
在交叉包arm-rockchip830-linux-uclibcgnueabihf的下边,有一个脚本env_install_toolchain.sh,直接执行即可配置成功,可/root/.bash_profile中查看
[root@localhost ~]# cat /root/.bash_profile # .bash_profile export PATH export PATH=/data/tools/arm-rockchip830-linux-uclibcgnueabihf/bin:$PATH
4.交叉编译iperf3
步骤一:下载iperf3源码 wget https://github.com/esnet/iperf/archive/refs/tags/3.9.tar.gz tar -xzf 3.9.tar.gz cd iperf-3.9 步骤二:配置环境变量 设置交叉编译工具链的路径和前缀。假设你的工具链在/usr/local/arm-rockchip830-linux-uclibcgnueabihf/路径下。 export PATH=/usr/local/arm-rockchip830-linux-uclibcgnueabihf/bin:$PATH export CROSS_COMPILE=arm-rockchip830-linux-uclibcgnueabihf- export CC=${CROSS_COMPILE}gcc export CXX=${CROSS_COMPILE}g++ export AR=${CROSS_COMPILE}ar export AS=${CROSS_COMPILE}as export LD=${CROSS_COMPILE}ld export NM=${CROSS_COMPILE}nm export OBJCOPY=${CROSS_COMPILE}objcopy export OBJDUMP=${CROSS_COMPILE}objdump export RANLIB=${CROSS_COMPILE}ranlib export STRIP=${CROSS_COMPILE}strip 步骤三:运行配置脚本 配置脚本需要知道你正在使用的交叉编译工具链。你需要告诉配置脚本使用交叉编译,并指定主机类型。 ./configure --host=arm-rockchip830-linux-uclibcgnueabihf 步骤四:编译和安装 一旦配置完成,你可以运行make和make install命令来编译和安装iperf3。 make make install 如果你希望将iperf3安装到特定目录(例如,交叉编译环境的根文件系统),可以在make install时指定安装前缀: make install DESTDIR=/path/to/target/rootfs
5.交叉编译wget
步骤一:下载并解压 wget 源码 首先,下载 wget 的源码: wget https://ftp.gnu.org/gnu/wget/wget-latest.tar.gz tar -xzf wget-latest.tar.gz cd wget-* 步骤二:设置环境变量 设置交叉编译工具链的路径和前缀: export PATH=/data/tools/arm-rockchip830-linux-uclibcgnueabihf/bin:$PATH export CROSS_COMPILE=arm-rockchip830-linux-uclibcgnueabihf- export CC=${CROSS_COMPILE}gcc export CXX=${CROSS_COMPILE}g++ export AR=${CROSS_COMPILE}ar export AS=${CROSS_COMPILE}as export LD=${CROSS_COMPILE}ld export NM=${CROSS_COMPILE}nm export OBJCOPY=${CROSS_COMPILE}objcopy export OBJDUMP=${CROSS_COMPILE}objdump export RANLIB=${CROSS_COMPILE}ranlib export STRIP=${CROSS_COMPILE}strip 步骤三:配置 使用 configure 脚本来配置 wget 源码以使用交叉编译工具链: ./configure --host=arm-rockchip830-linux-uclibcgnueabihf --build=x86_64-linux-gnu --target=arm-linux --prefix=/path/to/installation/directory 在这个命令中: --host 指定目标系统。 --build 指定构建系统。 --target 指定编译目标。 --prefix 指定安装目录,可以根据需要调整。 步骤四:编译和安装 运行 make 命令进行编译: make 然后安装编译好的 wget: make install DESTDIR=/path/to/target/rootfs 步骤五:将二进制文件复制到目标设备 将编译好的 wget 二进制文件复制到目标 ARM 设备: scp /path/to/installation/directory/bin/wget root@<ARM_DEVICE_IP>:/path/to/destination 步骤六:在目标设备上运行 SSH 进入目标设备并运行 wget: ssh root@<ARM_DEVICE_IP> chmod +x /path/to/destination/wget /path/to/destination/wget --version 验证二进制文件 在目标设备上,使用 file 命令检查二进制文件类型: file /path/to/destination/wget 输出应类似于: wget: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-uClibc.so.0, for GNU/Linux 3.2.0, not stripped 使用 ldd 命令检查二进制文件的库依赖: ldd /path/to/destination/wget 确保所有依赖库在目标设备上都可用。 步骤七:调试 如果遇到问题,请检查以下事项: 验证工具链:确保你的交叉编译工具链是正确的,并且用于编译时的配置是正确的。 库依赖:确保所有必需的动态库在目标设备上可用。可以通过静态编译来避免动态库依赖问题: ./configure --host=arm-rockchip830-linux-uclibcgnueabihf LDFLAGS="-static" make
6.编译环境变量设置(临时or永久)
设置环境变量的步骤可以在你的终端中执行。为了确保这些环境变量在每次编译时都有效,可以选择临时设置(只在当前终端会话中有效)或永久设置(每次打开终端时自动生效)。 临时设置环境变量 在你的终端中直接执行这些命令。它们将在当前终端会话中有效,关闭终端后设置将失效。 export PATH=/data/tools/arm-rockchip830-linux-uclibcgnueabihf/bin:$PATH export CROSS_COMPILE=arm-rockchip830-linux-uclibcgnueabihf- export CC=${CROSS_COMPILE}gcc export CXX=${CROSS_COMPILE}g++ export AR=${CROSS_COMPILE}ar export AS=${CROSS_COMPILE}as export LD=${CROSS_COMPILE}ld export NM=${CROSS_COMPILE}nm export OBJCOPY=${CROSS_COMPILE}objcopy export OBJDUMP=${CROSS_COMPILE}objdump export RANLIB=${CROSS_COMPILE}ranlib export STRIP=${CROSS_COMPILE}strip 永久设置环境变量 为了使环境变量在每次打开终端时都自动生效,可以将这些设置添加到你的 shell 配置文件中,如 .bashrc、.bash_profile 或 .profile 文件中。以下步骤假设你使用的是 Bash shell。 1. 编辑配置文件 打开你的 .bashrc 或 .bash_profile 文件进行编辑(选择其中一个即可,通常 .bashrc 是更常用的)。 nano ~/.bashrc 或者 nano ~/.bash_profile 2. 添加环境变量 在文件的末尾添加以下行: # Add ARM cross-compilation tools to PATH export PATH=/data/tools/arm-rockchip830-linux-uclibcgnueabihf/bin:$PATH export CROSS_COMPILE=arm-rockchip830-linux-uclibcgnueabihf- export CC=${CROSS_COMPILE}gcc export CXX=${CROSS_COMPILE}g++ export AR=${CROSS_COMPILE}ar export AS=${CROSS_COMPILE}as export LD=${CROSS_COMPILE}ld export NM=${CROSS_COMPILE}nm export OBJCOPY=${CROSS_COMPILE}objcopy export OBJDUMP=${CROSS_COMPILE}objdump export RANLIB=${CROSS_COMPILE}ranlib export STRIP=${CROSS_COMPILE}strip 3. 保存并关闭文件 在 nano 中,按 Ctrl+O 保存文件,按 Enter 确认,然后按 Ctrl+X 退出编辑器。 4. 使更改生效 你需要重新加载文件以使更改生效,或者重新打开一个终端。可以使用以下命令重新加载: source ~/.bashrc 或者 source ~/.bash_profile 5.验证环境变量 确保环境变量已正确设置: echo $PATH echo $CROSS_COMPILE 输出中应包含 /data/tools/arm-rockchip830-linux-uclibcgnueabihf/bin 以及 arm-rockchip830-linux-uclibcgnueabihf- 前缀。
标签:交叉,CROSS,COMPILE,编译,export,linux,wget,arm From: https://www.cnblogs.com/Leonardo-li/p/18197623