You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CentOS7下用ICC编译DPDK18.08后构建O-RAN ODU-Low fapi库报错

报错根因

  • 工具链不匹配:你之前使用Intel ICC编译器编译了DPDK(所选编译目标为x86_64-native-linuxapp-icc),但后续编译ODU FAPI库时使用的是GCC 4.8.5,两种编译器对DPDK头文件中的向量宏、内置类型处理逻辑不一致,最终触发_mm_storeu_si128参数类型不匹配错误。
  • 编译器版本兼容问题:CentOS7默认自带的GCC 4.8.5版本过旧,对DPDK 18.08使用的SSE向量指令隐式类型转换支持存在已知缺陷。

解决步骤

方案1:统一编译工具链(优先推荐)

  1. 清理之前的DPDK ICC编译产物,进入DPDK源码根目录执行命令:
make clean
rm -rf x86_64-native-linuxapp-icc
  1. 重置DPDK编译环境变量:
export RTE_TARGET=x86_64-native-linuxapp-gcc
export RTE_SDK=你的DPDK源码绝对路径/dpdk-18.08
  1. 重新运行DPDK编译脚本:
./usertools/dpdk-setup.sh

选择对应GCC架构的编译选项(一般为[38] x86_64-native-linuxapp-gcc,具体序号以脚本实际展示为准),编译完成后退出脚本,再重新编译ODU FAPI库即可。

方案2:升级GCC版本(可选,解决版本兼容问题)

如果方案1执行后仍报错,可将GCC升级到7.x及以上版本:

  1. 安装CentOS SCL源和高版本GCC:
yum install centos-release-scl -y
yum install devtoolset-7-gcc devtoolset-7-gcc-c++ -y
  1. 编译前临时启用高版本GCC:
scl enable devtoolset-7 bash

执行gcc --version确认版本为7.x后,再重新编译DPDK和ODU库即可。

临时规避方案

如果不想重新编译DPDK,可在ODU工程的编译CFLAGS参数中添加-fno-strict-aliasing -msse4.2,强制开启SSE指令集支持、关闭严格别名检查,即可绕过类型转换报错。


内容的提问来源于stack exchange,提问作者Sindhu Pitta

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 06:15:03