udev编译问题 Linking udev

        编译udev碰到两个问题,可能是因为版本比较老了。我用的是udev-080。

        问题如下:

  Linking udev:                                                         [ERROR]  
  arm-linux-gnueabihf-gcc -Wl,-warn-common udev.o -o udev libudev.a
  libudev.a(udev_sysfs.o): In function `sysfs_device_get':
  /home/hero/work/udev-080/udev_sysfs.c:137: undefined reference to `S_ISLNK'
  collect2: error: ld returned 1 exit status

        这个问题的解决方法是,在udev_sysfs.c文件中添加库文件#include<sys/stat.h>。

        然后继续编译,碰到另一个错误:Compiling udevmonitor.c:                                              [ERROR]  
  arm-linux-gnueabihf-gcc -c -g -Wall -pipe -D_GNU_SOURCE -D_FILE_OFFSET_BITS=6
  4 -Wstrict-prototypes -Wsign-compare -Wshadow -Wchar-subscripts -Wmissing-dec
  larations -Wnested-externs -Wpointer-arith -Wcast-align -Wsign-compare -Wmiss
  ing-prototypes -Os -DUSE_LOG udevmonitor.c -o udevmonitor.o
  udevmonitor.c: In function ‘init_udev_monitor_socket’:
  udevmonitor.c:54:2: warning: implicit declaration of function ‘offsetof’
  [-Wimplicit-function-declaration]
  udevmonitor.c:54:2: warning: nested extern declaration of ‘offsetof’ [-Wn
  ested-externs]
  udevmonitor.c:54:21: error: expected expression before ‘struct’

        这个问题同样是缺少库文件,在udevmonitor.c文件中,加入#include<stddef.h>就能解决问题。

        之后继续编译,没有问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值