我正在尝试使用交叉编译器 arm-linux-gcc 编译 libpcap。当我运行“make”时出现错误:
./pcap-linux.c:254:14: conflicting types for socklen_t /usr/arm-linux-gnueabi/include/unistd.h:275:21: note previous declaration of 'socklen_t'
我也试过使用普通的 gcc 编译它,但我有同样的错误。我在 ubuntu 上工作。如何解决这个问题
最佳答案
pcap-linux.c
以下面的方式创建别名:
#ifndef HAVE_SOCKLEN_T
typedef int socklen_t;
#endif
您应该将-DHAVE_SOCKLEN_T
传递给编译器或将
#define HAVE_SOCKLEN_T
到一些 header (通常它是由 configure
脚本或生成 config.h
的类似脚本自动完成的)。
您似乎跳过了构建配置步骤,所以请准备好看到另一个奇怪的构建错误。
关于libpcap 编译期间的类型冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38497497/