找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 23|回复: 2

px4源码中can调试时, error: 'struct ifreq' has no member named 'ifr_ifindex'

[复制链接]

30

主题

26

回帖

4万

积分

管理员

积分
42068
发表于 2025-2-18 11:25:21 | 显示全部楼层 |阅读模式


../../src/drivers/engine_control/engine_control.c: In function 'open_can_port':
../../src/drivers/engine_control/engine_control.c:409:24: error: 'struct ifreq' has no member named 'ifr_ifindex'
  409 |  addr.can_ifindex = ifr.ifr_ifindex;
      |                        ^
compilation terminated due to -Wfatal-errors.
[925/1293] Building CXX object src/modules/fw_pos_control_l1/CMakeFiles/modules__fw_pos_control_l1.dir/FixedwingPositionControl.cpp.obj
ninja: build stopped: subcommand failed.
make: *** [Makefile:226:px4_fmu-v6x_default] 错误 1

已获得悬赏 10 金钱

最佳答案

在px4源码中搜struct ifreq的时候, 我们看到下面的内容 sudo vi build/px4_fmu-v6x_default/external/Build/px4io_firmware/NuttX/nuttx/include/net/if.h +209 /* This is the I/F request that should ...

30

主题

26

回帖

4万

积分

管理员

积分
42068
 楼主| 发表于 2025-2-18 11:25:52 | 显示全部楼层







在px4源码中搜struct ifreq的时候, 我们看到下面的内容

sudo vi build/px4_fmu-v6x_default/external/Build/px4io_firmware/NuttX/nuttx/include/net/if.h +209



/* This is the I/F request that should be used with IPv4. */

struct ifreq
{
  char                        ifr_name[IFNAMSIZ];       /* Network device name (e.g. "eth0") */
#ifdef CONFIG_NETDEV_IFINDEX
  int16_t                     ifr_ifindex;              /* Interface index */
#endif
  union
  {
    struct sockaddr           ifru_addr;                /* IP Address */
    struct sockaddr           ifru_dstaddr;             /* P-to-P Address */
    struct sockaddr           ifru_broadaddr;           /* Broadcast address */
    struct sockaddr           ifru_netmask;             /* Netmask */
    struct sockaddr           ifru_hwaddr;              /* MAC address */
    int                       ifru_count;               /* Number of devices */
    int                       ifru_mtu;                 /* MTU size */
    uint8_t                   ifru_flags;               /* Interface flags */
    struct mii_ioctl_notify_s ifru_mii_notify;          /* PHY event notification */
    struct mii_ioctl_data_s   ifru_mii_data;            /* MII request data */
    struct can_ioctl_data_s   ifru_can_data;            /* CAN bitrate request data */
  } ifr_ifru;
};





cuigaosheng@cuigaosheng:~/linshiceshi2/px4_vtol$ sudo git diff boards/px4/fmu-v6x/nuttx-config/nsh/defconfig
diff --git a/boards/px4/fmu-v6x/nuttx-config/nsh/defconfig b/boards/px4/fmu-v6x/nuttx-config/nsh/defconfig
index d75b3c5f60..8858d149d7 100644
--- a/boards/px4/fmu-v6x/nuttx-config/nsh/defconfig
+++ b//boards/px4/fmu-v6x/nuttx-config/nsh/defconfig
@@ -59,6 +59,7 @@ CONFIG_DEFAULT_SMALL=y
CONFIG_DEV_FIFO_SIZE=0
CONFIG_DEV_PIPE_MAXSIZE=1024
CONFIG_DEV_PIPE_SIZE=70
+CONFIG_NETDEV_IFINDEX=y
CONFIG_ETH0_PHY_LAN8742A=y
CONFIG_EXPERIMENTAL=y
CONFIG_FAT_DMAMEMORY=y
cuigaosheng@cuigaosheng:~/linshiceshi2/px4_vtol$

上面是我在原先v6x板子上,defconfig配置文件中添加CONFIG_NETDEV_IFINDEX=y后,  用git diff打印出来的。   






30

主题

26

回帖

4万

积分

管理员

积分
42068
 楼主| 发表于 2025-2-18 11:45:02 | 显示全部楼层
/boards/px4/fmu-v6x/nuttx-config/nsh/defconfig  在这个文件中添加CONFIG_NETDEV_IFINDEX = y
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|flightreview|小黑屋|PX4-Autopilot|PX4论坛

GMT+8, 2025-3-12 19:21 , Processed in 0.058897 second(s), 25 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表