ошибка: разыменование указателя на неполный тип с помощью dpdk 18.08 - PullRequest
0 голосов
/ 14 декабря 2018

Я получаю следующие ошибки компиляции в 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)

Не могли бы вы дать мне знать, как исправить эту ошибку.

Спасибо,

Ответы [ 2 ]

0 голосов
/ 17 декабря 2018

DPDK в версии 18.08 не имеет структуры rte_pci_device: https://doc.dpdk.org/api-18.08/rte__pci_8h.html

Возможно, вы использовали неправильную версию документации.

0 голосов
/ 14 декабря 2018

Я включил заголовки, rte_pci.h и rte_dev.h Я не уверен, в чем проблема.

...