【无标题】 您所在的位置:网站首页 版本2101 【无标题】

【无标题】

2023-03-13 08:10| 来源: 网络整理| 查看: 265

VPP交叉编译方法(version:21.01)

转载

1.环境和条件: 1.1开发机: CentOS Linux release 8.3.2011

Linux localhost.localdomain 4.18.0-240.22.1.el8_3.x86_64 #1 SMP Thu Apr 8 19:01:30 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

1.2目标机:

Linux Switch 3.14.57_v1.0 #2 SMP Mon May 17 18:29:08 CST 2021 aarch64_be GNU/Linux

1.3工具链: 工具链下载地址:

https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-a/downloads

下载:

gcc-arm-10.2-2020.11-x86_64-aarch64_be-none-linux-gnu.tar.xz 在这里插入图片描述

1.4 VPP 1.版本:2101

2.下载源码:

git clone https://gerrit.fd.io/r/vpp

3.check稳定发行版本:2101

git checkout -b stable/2101 origin/stable/2101

2安装vpp依赖工具库等

make install-dep make install-ext-dep

3交叉编译 3.1工具链准备 工具链拷贝到开发机上面解压后,交叉编译 libuuid、openssl,并将结果生成到工具链的libc/usr目录:

交叉编译 libuuid:libuuid-1.0.3.tar.gz

CC=“aarch64_be-none-linux-gnu-gcc” ./configure --host=x86_64 --prefix=/home/guoqixin/gcc-arm-10.2-2020.11-x86_64-aarch64_be-none-linux-gnu/aarch64_be-none-linux-gnu/libc/usr

交叉编译 openssl:openssl-OpenSSL_1_0_1e.tar.gz

CC=“aarch64_be-none-linux-gnu-gcc” ./config no-asm shared --prefix=/home/guoqixin/gcc-arm-10.2-2020.11-x86_64-aarch64_be-none-linux-gnu/aarch64_be-none-linux-gnu/libc/usr 在这里插入图片描述

去掉 Makefile 里面的 -m64 编译选项

3.2在vpp中指定工具链相关信息 在这里插入图片描述

vim vpp/src/CMakeLists.txt:

1.添加:必须在 project(vpp C) 前面添加:工具链路径根据自身情况做修改

#####################################################################

set(CMAKE_SYSTEM_NAME Linux)

set(CMAKE_SYSTEM_PROCESSOR aarch64)

set(CMAKE_SYSROOT /home/guoqixin/gcc-arm-10.2-2020.11-x86_64-aarch64_be-none-linux-gnu/aarch64_be-none-linux-gnu/libc)

set(tools /home/guoqixin/gcc-arm-10.2-2020.11-x86_64-aarch64_be-none-linux-gnu)

set(CMAKE_C_COMPILER ${tools}/bin/aarch64_be-none-linux-gnu-gcc)

set(CMAKE_CXX_COMPILER ${tools}/bin/aarch64_be-none-linux-gnu-g++)

set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)

set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)

set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)

set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)

#####################################################################

project(vpp C)

删除:删掉下面的 -Werror 编译选项

if (CMAKE_BUILD_TYPE)

set(CMAKE_C_FLAGS “-g -fPIC -Werror -Wall ${CMAKE_C_FLAGS}”)

endif()

3.3编译 make build-release

编译结果在:

vpp/build-root/install-vpp-native/vpp

4目标机 将编译结果:vpp/build-root/install-vpp-native/vpp目录打包,拷贝到目标机;

同时将工具链的:

gcc-arm-10.2-2020.11-x86_64-aarch64_be-none-linux-gnu/aarch64_be-none-linux-gnu/libc 目录打包拷贝到目标机

运行:

LD_LIBRARY_PATH=[工具链路径]/libc/lib64:[工具链路径]/libc/usr/lib64 [工具链路径]/libc/lib/ld-linux-aarch64_be.so.1 [vpp路径]/vpp/bin/vpp -c startup.conf

[工具链路径]/libc/lib64:用于指定工具链C库的搜索路径 [工具链路径]/libc/usr/lib64:用于指定工具链用户库(如前面编译的luuid、openssl库等)的搜索路径 5 各种编译问题处理 1、问题:

cmake: symbol lookup error: cmake: undefined symbol: archive_write_add_filter_zstd

解决办法:

yum remove libarchive*

wget https://github.com/libarchive/libarchive/releases/download/3.5.1/libarchive-3.5.1.tar.xz

tar -xvf libarchive-3.5.1.tar.xz

cd libarchive-3.5.1

./configure --prefix=/usr --disable-static && make

sudo make install

cd … && rm -rf libarchive-3.5.1 && rm libarchive-3.5.1.tar.xz

在这里插入图片描述

git tag -d v21.10-rc0

git tag -a v21.10-rc0 -m “v21.10-rc0”

git describe ———————————————— 版权声明:本文为CSDN博主「guoqixin2008」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/guoqixin2008/article/details/122415704



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有