1. ninja install 安装路径
1.1 examples
/usr/local/share/dpdk/examples/
1.2 库,默认librte开头
lib/librte_* -----> /usr/local/lib64
drivers/librte_* ----> /usr/local/lib64/dpdk/pmds-22.0
1.3 可执行文件头文件
app/dpdk-* to /usr/local/bin
dpdk/usertools/dpdk-devbind.py
dpdk/usertools/dpdk-pmdinfo.py
dpdk/usertools/dpdk-telemetry.py
dpdk/usertools/dpdk-hugepages.py
app/test/dpdk-test to /usr/local/bin
kernel/linux/kni/rte_kni.ko to /lib/modules/5.4.210-1.el7.elrepo.x86_64/extra/dpdk
dpdk/build/rte_build_config.h to /usr/local/include
dpdk/drivers
dpdk/config/rte_config.h
dpdk/lib/kvargs/rte_kvargs.h
dpdk/lib/eal/x86/include/rte_atomic.h
dpdk/lib/ring/rte_ring.h
dpdk/lib/telemetry/rte_telemetry.h
dpdk/examples/* to /usr/local/share/dpdk/examples/
dpdk/lib/eal/include/generic/rte_atomic.h to /usr/local/include/generic/
dpdk/build/meson-private/libdpdk-libs.pc to /usr/local/lib64/pkgconfig
dpdk/build/meson-private/libdpdk.pc to
2. 示例
进入安装目录下的examoles/hellowrold执行:
make
Makefile:14: *** "no installation of DPDK found". Stop.
查看Makefile文件,因为pkgconf没有找到,pc文件
pkg-configure会根据 PKG_CONFIG_PATH环境变量来查找.pc文件,从而确定编译时 需要的库和头文件的位置,PKG_CONFIG_PATH默认位置为/usr/lib/pkg-config文件夹
#pkg-config libdpdk --libs
Package libdpdk was not found in the pkg-config search path.
Perhaps you should add the directory containing `libdpdk.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libdpdk' found
看到为找到libdpdk.pc文件,需要修改环境变量包含libdpdk.pc路径
执行: export PKG_CONFIG_PATH="/usr/local/lib64/pkgconfig/", export环境变量临时生效,
永久生效,需要通过修改.bashrc文件,添加环境变量;或者修改/etc/profile文件
执行: pkg-config libdpdk --libs
-Wl,--as-needed -L/usr/local/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
关于pkg-config, 详细见如下连接:
http://t.zoukankan.com/lcw-p-3159506.html
修改完毕后执行: #make, 生成helloworld-shared可执行文件,找不到库
执行: ldd helloworld-shared
linux-vdso.so.1 => (0x00007fff711f6000)
librte_eal.so.22 => not found
libc.so.6 => /lib64/libc.so.6 (0x00007f09a9396000)
/lib64/ld-linux-x86-64.so.2 (0x00007f09a9764000)
执行: export LD_LIBRARY_PATH=LD_LIBRARY_PATH:/usr/local/lib64/, 同上,临时生效。
通常情况下,许多开源代码的程序或函数库都会默认将在即安装到/usr/local目录下的相应位置(如:/usr/local/bin 或 /usr/local/lib)以便于系统自身的程序或函数库相区别。而许多linux系统的/ect/ld.so.conf 文件中默认又不包含 /usr/local/lib 。因此出现安装了共享库,但是却无法找到共享库的情况。
因此,永久生效,需要到/etc/ld.so.conf.d/路径下添加包含此lib库路径文件,并执行 ldconfig ldconfig , 该命令用来刷新系统的共享库缓存,即 /etc/ld.so.cache 文件。为了减少共享库系统的库搜索时间,共享库系统维护了一个共享库so名称的缓存文件 /etc/ld.so.cache