我已经在 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
谢谢...
最佳答案
在这种特殊情况下,定义的顺序很重要。不确定你是否意识到这一点,但尝试添加
#define _BSD_SOURCE
#define __FAVOR_BSD
按照文件开头某处的特定顺序。
关于c - OS/X 和 Linux 之间的 tcphdr 字段名称更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14130692/