首页 > 解决方案 > 错误:使用 dpdk 18.08 取消引用指向不完整类型的指针

问题描述

我在 memcmp 中收到以下编译错误。源代码粘贴在错误下方:

: error: dereferencing pointer to incomplete type
                  if((memcmp((const void *)&pci_dev->addr,(const void *)&Input[iLoop].guestpci,sizeof(pci_dev->addr))==0) && (memcmp((const void *)&gBtgData.nic_port[port].mac_addr,(const void *)&Input[iLoop].mac_addr,sizeof(gBtgData.nic_port[port].mac_addr))==0))
                                                   ^
: error: dereferencing pointer to incomplete type
                  if((memcmp((const void *)&pci_dev->addr,(const void *)&Input[iLoop].guestpci,sizeof(pci_dev->addr))==0) && (memcmp((const void *)&gBtgData.nic_port[port].mac_addr,(const void *)&Input[iLoop].mac_addr,sizeof(gBtgData.nic_port[port].mac_addr))==0))
                                                                                                             ^

代码:

struct rte_eth_dev_info dev_info;
const struct rte_pci_device *pci_dev;
rte_eth_dev_info_get(port, &dev_info);
pci_dev = RTE_DEV_TO_PCI(dev_info.device);


memcmp((const void *)&pci_dev->addr,(const void *)&Input[iLoop].guestpci,sizeof(pcii
_dev->addr))==0) && (rte_memcmp((const void *)&gBtgData.nic_port[port].mac_addr,(const void *)&Input[iLoop]..
mac_addr,sizeof(gBtgData.nic_port[port].mac_addr))==0)

您能否让我知道如何解决此错误。

谢谢,

标签: c++rhel7dpdkg++4.8

解决方案


DPDK in version 18.08 doesn't have the rte_pci_device struct: https://doc.dpdk.org/api-18.08/rte__pci_8h.html

You were probably using a wrong documentation version.


推荐阅读