本篇文章為大家展示了DPDK編譯成動態(tài)庫后應(yīng)用程序檢測不到端口的問題怎么解決,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。
成都創(chuàng)新互聯(lián)公司堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的吳中網(wǎng)站設(shè)計(jì)、移動媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
把DPDK由靜態(tài)庫方式改為編譯成動態(tài)庫后,原本正常的應(yīng)用程序就不能運(yùn)行了。 在初始化的時(shí)候,rte_eth_dev_count()
總是返回0,而用dpdk_nic_bind.py --status
查看端口是綁定成功的。
DPDK默認(rèn)是編譯成靜態(tài)庫的,改成動態(tài)庫只需要把common_linuxapp
文件中CONFIG_RTE_BUILD_SHARED_LIB=n
修改成CONFIG_RTE_BUILD_SHARED_LIB=y
就行了。
DPDK編譯成動態(tài)庫后,PMD的各個(gè)驅(qū)動就單獨(dú)編譯成了一個(gè)個(gè)的.so文件,而在應(yīng)用程序中沒有指定需要鏈接的.so文件,因此就導(dǎo)致了檢測不到端口的問題。
PMD有好幾種驅(qū)動,為了更好的移植性,建議在Makefile中指定鏈接所有驅(qū)動的.so文件, LDLIBS += -lrte_pmd_e1000 -lrte_pmd_i40e -lrte_pmd_ixgbe
如果應(yīng)用運(yùn)行在虛擬機(jī)環(huán)境的話,還需要指定librte_pmd_virtio_uio.so
和librte_pmd_vmxnet3_uio.so
。
上述內(nèi)容就是DPDK編譯成動態(tài)庫后應(yīng)用程序檢測不到端口的問題怎么解決,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。