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

DPDK 21.11环境下安装Pktgen缺失rte_config.h报错求助

问题现象

基于DPDK 21.11版本编译PktGen时出现如下报错,提示找不到rte_config.h头文件:

[1/69] Compiling C object lib/common/libcommon.a.p/copyright_info.c.o
FAILED: lib/common/libcommon.a.p/copyright_info.c.o
cc -Ilib/common/libcommon.a.p -Ilib/common -I../lib/common -I/include -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -Wpedantic -Werror -O3 -march=native -mavx -mavx2 -DALLOW_EXPERIMENTAL_API -D_GNU_SOURCE -Wno-pedantic -Wno-format-truncation -fPIC -include rte_config.h -march=native -mno-avx512f -MD -MQ lib/common/libcommon.a.p/copyright_info.c.o -MF lib/common/libcommon.a.p/copyright_info.c.o.d -o lib/common/libcommon.a.p/copyright_info.c.o -c ../lib/common/copyright_info.c
cc1: fatal error: rte_config.h: No such file or directory
compilation terminated.

当前环境变量及pkg-config查询结果如下:

23:45:08 [root:~/PktGen-DPDK] dev* ± echo  $RTE_SDK
/root/repo/gNB_CU/ngp/thirdparty/dpdk/dpdk-21.11/
23:45:41 [root:~/PktGen-DPDK] dev* ± echo  $RTE_TARGET
x86_64-native-linux-gcc
23:45:46 [root:~/PktGen-DPDK] dev* ± pkg-config --libs libdpdk
-Wl,--as-needed -L/lib64 -lrte_node -lrte_graph -lrte_flow_classify -lrte_pipeline -lrte_table -lrte_pdump -lrte_port -lrte_fib -lrte_ipsec -lrte_vhost -lrte_stack -lrte_security -lrte_sched -lrte_reorder -lrte_rib -lrte_dmadev -lrte_regexdev -lrte_rawdev -lrte_power -lrte_pcapng -lrte_member -lrte_lpm -lrte_latencystats -lrte_kni -lrte_jobstats -lrte_ip_frag -lrte_gso -lrte_gro -lrte_gpudev -lrte_eventdev -lrte_efd -lrte_distributor -lrte_cryptodev -lrte_compressdev -lrte_cfgfile -lrte_bpf -lrte_bitratestats -lrte_bbdev -lrte_acl -lrte_timer -lrte_hash -lrte_metrics -lrte_cmdline -lrte_pci -lrte_ethdev -lrte_meter -lrte_net -lrte_mbuf -lrte_mempool -lrte_rcu -lrte_ring -lrte_eal -lrte_telemetry -lrte_kvargs
23:45:54 [root:~/PktGen-DPDK] dev* ± pkg-config --cflags libdpdk
-I/include -include rte_config.h -march=native -mno-avx512f
错误根因
  • 核心问题是pkg-config读取到了错误的libdpdk.pc配置文件:从返回结果看,头文件搜索路径是-I/include(系统根目录下的include目录)、库搜索路径是-L/lib64(系统根目录下的lib64目录),这两个路径下都没有DPDK的头文件和库文件,直接导致编译器找不到rte_config.h。
  • DPDK 21.11默认采用meson+ninja构建体系,旧版本依赖的RTE_SDK、RTE_TARGET环境变量不再是编译PktGen的必需配置,当前设置的RTE_TARGET值不会参与编译配置,和本次报错无关。
解决步骤
  • 第一步:确认DPDK 21.11已经完成编译,进入DPDK源码目录执行编译和安装(已经编译过可直接跳过编译步骤执行安装):
cd /root/repo/gNB_CU/ngp/thirdparty/dpdk/dpdk-21.11/
# 首次编译需要执行meson配置
meson build
cd build
ninja
# 安装到系统默认路径(/usr/local)
ninja install
# 刷新系统动态库缓存
ldconfig
  • 第二步:配置PKG_CONFIG_PATH环境变量,让pkg-config能定位到正确的DPDK配置文件。
    如果执行了上述ninja install步骤,DPDK的pc文件默认安装在/usr/local/lib64/pkgconfig路径,执行如下命令:
    export PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig:$PKG_CONFIG_PATH
    
    如果不想安装DPDK到系统路径,直接使用源码build目录下的编译产物,执行如下命令:
    export PKG_CONFIG_PATH=/root/repo/gNB_CU/ngp/thirdparty/dpdk/dpdk-21.11/build/meson-private:$PKG_CONFIG_PATH
    
  • 第三步:验证pkg-config返回结果是否正常,执行pkg-config --cflags libdpdk,正常返回的头文件路径不会出现单独的-I/include,应该是-I/usr/local/include或者对应build目录下的include路径。
  • 第四步:清理PktGen旧的编译缓存,重新编译即可:
cd ~/PktGen-DPDK
rm -rf build
meson build
cd build
ninja

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 19:03:28