我已经在Centos 7上使用x86_64-native-linuxapp-gcc和选项构建并安装了DPDK v.18.11.9:
CONFIG_RTE_BUILD_SHARED_LIB=y我们想要运行testpmd,但它无法加载:
$ ./x86_64-native-linuxapp-gcc/app/testpmd
./x86_64-native-linuxapp-gcc/app/testpmd: error while loading shared
libraries: librte_pmd_bond.so.2.1: cannot open shared object file: No such file or directory这是预期的,因为lib/不包含librte_pmd_bond.so。
我应该使用什么构建选项来构建这个库?
向大卫致以最美好的问候
发布于 2021-01-26 01:23:24
当忘记指向应用程序本身的库路径时,这是一个常见的错误。当使用共享模式构建DPDK库时,必须通过LD_LIBRARY_PATH指定dpdk共享对象的路径。如果不能做到这一点,我们就会得到
# ldd app/testpmd
linux-vdso.so.1 (0x00007fff3eeb2000)
librte_pmd_bond.so.2.1 => not found
librte_pmd_dpaa.so.1.1 => not found
librte_pmd_ixgbe.so.2.1 => not found
librte_pmd_i40e.so.2.1 => not found
librte_pmd_bnxt.so.2.1 => not found
librte_pmd_softnic.so.1.1 => not found
librte_pdump.so.2.1 => not found
librte_metrics.so.1.1 => not found
librte_bitratestats.so.2.1 => not found
librte_latencystats.so.1.1 => not found
librte_bpf.so.1.1 => not found
librte_gro.so.1.1 => not found
librte_gso.so.1.1 => not found
librte_mbuf.so.4.1 => not found
librte_net.so.1.1 => not found
librte_ethdev.so.11.1 => not found
librte_mempool.so.5.1 => not found
librte_ring.so.2.1 => not found
librte_eal.so.9.1 => not found
librte_cmdline.so.2.1 => not found
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f1474089000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f1473c98000)
/lib64/ld-linux-x86-64.so.2 (0x00007f14745cf000)从而运行我们得到的应用程序
# ./app/testpmd
./app/testpmd: error while loading shared libraries: librte_pmd_bond.so.2.1: cannot open shared object file: No such file or directory如上所述,要修复错误,请使用
export LD_LIBRARY_PATH=[path to dpdk shared libraries]这解决了依赖关系和应用程序运行的问题。
https://stackoverflow.com/questions/65884274
复制相似问题