libpcap 编译期间的类型冲突

标签 c linux gcc cross-platform libpcap

我正在尝试使用交叉编译器 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/

相关文章:

java - 线程库的无锁实现

linux - $_GET 在服务器上被切断,但在本地有效

使用gcc在C中将float转换为unsigned int

c++ - if 语句中的复合表达式

c - 需要帮助将二进制数转换为 C 中的字符串

c - 理解 C 中的结构体和指针变量

linux - linux framebuffer 驱动程序是视频卡驱动程序吗?

c++ - volatile sig_atomic_t 的内存安全

c++ - 使用 arm-fsl-linux-gnueabi-gcc : int64_t is 32 bit long 编译

c - 在 C 中,使用什么函数比 strtrns 更安全?