tcphdr字段名称在OS / X和Linux之间更改

时间:2013-01-02 23:08:48

标签: c linux tcp bsd

我在OS / X上开发了一些网络代码,而且我在struct tcphdr中重命名了一些字段。我收到了一堆形式的错误:"dpkt.c:597:36: error: ‘struct tcphdr’ has no member named ‘th_sport’ "。我尝试了#define __FAVOR_BSD 1#define _BSD_SOURCE 1,但没有成功。

命令行是:

$ g++ -o dpkt -g  dpkt.c -lpcap

尝试时没有变化

$ g++ -o dpkt -g  -D_BSD_SOURCE=1 dpkt.c -lpcap

...谢谢

1 个答案:

答案 0 :(得分:1)

在这种特殊情况下,定义的顺序很重要。不确定您是否知道,但尝试添加

#define _BSD_SOURCE
#define __FAVOR_BSD

以特定顺序在文件开头的某处。