本次编译源码用的系统是centos7.9,内存40G的服务器(编译源码内存需要大于4G,4G内存编译出错,推荐8G)。环境为联网环境,因为下载的依赖包和安装包比较多,最后生成的rpm包可以进行无网安装,最后生成的rpm包适用于centos7和centos8,亲测centos8也能安装成功。 一。下载源码 二。安装依赖 三。编译源码 四。生成rpm包 五。rpm包安装vpp 六。问题记录
一。下载源码 1.git clone -b master https://github.com/FDio/vpp.git 2.git clone https://gerrit.fd.io/r/vpp 两个网站都是最新的vpp源码,由于个人网络问题,访问github总是连不到,所以优先使用第二个。 需要安装git,见六。问题记录 二。安装依赖。 进入vpp目录 cd vpp 进行依赖包安装 make install-dep 三。编译源码。 首先进入build-root执行 make distclean 然后回到上级目录执行 make build 出现问题见六。问题记录 四。生成rpm包 make pkg-rpm 出现问题见六。问题记录 五。rpm包安装vpp 进入build-root目录执行 rpm -ivh *.rpm --nodeps --force service vpp start service vpp status vppctl 见到如下页面证明成功。 centos8启动vpp如果不成功参考 https://blog.csdn.net/weixin_42736510/article/details/121514410 OK!
六。问题记录。 1.-bash: git: command not found 2.github下载v1.0.tar.gz问题 多执行几遍make build,应该是网络连接github.com连不上。 3.github下载rdma-core-35.0.tar.gz问题 同上。
4.github下载quicly_0.1.3-vpp.tar.gz问题 同上 5.NASM 问题 /bin/sh: /root/zby/vpp/build-root/install-vpp_debug-native/external/bin/nasm: No such file or directory Makefile:60: *** “NASM is not installed! Minimum required version: 2.14”. Stop. 出现这个问题,首先看看内存是否低于8G,要是不低于,执行以下命令,这个命令具体意思不大清楚。 make install-ext-deps 结束现象正常,然后重新执行 make build。这个问题就解决了 6.cc1问题 FAILED: CMakeFiles/plugins/crypto_native/CMakeFiles/crypto_native_hsw.dir/aes_cbc.c.o ccache /usr/lib64/ccache/cc -DCLIB_DEBUG -I/root/zby/vpp/src -ICMakeFiles -I/root/zby/vpp/src/plugins -ICMakeFiles/plugins -fPIC -g -fPIC -Werror -Wall -Wno-address-of-packed-member -O0 -fstack-protector -fno-common -march=haswell -maes -MD -MT CMakeFiles/plugins/crypto_native/CMakeFiles/crypto_native_hsw.dir/aes_cbc.c.o -MF CMakeFiles/plugins/crypto_native/CMakeFiles/crypto_native_hsw.dir/aes_cbc.c.o.d -o CMakeFiles/plugins/crypto_native/CMakeFiles/crypto_native_hsw.dir/aes_cbc.c.o -c /root/zby/vpp/src/plugins/crypto_native/aes_cbc.c /root/zby/vpp/src/plugins/crypto_native/aes_cbc.c:1:0: error: bad value (haswell) for -march= switch /* ^ cc1: error: unrecognized command line option “-Wno-address-of-packed-member” [-Werror] cc1: all warnings being treated as errors [264/1965] Generating API header /root/zby/vpp/build-root/build-vpp_debug-native/vpp/CMakeFiles/plugins/cnat/cnat.api.h ninja: build stopped: subcommand failed.
主要看cc1: error 解决方法,gcc版本问题,系统自带的版本是4.8.5,需要升级。 在线升级到gcc7 https://blog.csdn.net/weixin_42736510/article/details/121558073 源码更新到gcc9(编译时间稍长) https://blog.csdn.net/weixin_42736510/article/details/121557807 7.boost问题 error: Failed build dependencies: boost is needed by vpp-22.02-rc0~334_g09abed6.x86_64 boost-devel is needed by vpp-22.02-rc0~334_g09abed6.x86_64 make[1]: *** [RPM] Error 1 解决方法: yum install boost yum install boost-devel
编译完成生成的vpp rpm包 编译完成生成的vpp rpm包
|