Linux操作系统。 SOL_NETLINK没有定义

我试图在Linux中的setsockopt中使用SOL_NETLINK,并得到一个错误,说SOL_NETLINK没有定义,虽然在包含的socket.h文件中。

谷歌search一些答案,并看到人们重新定义SOL_NETLINK在自己的文件由于“Linux头文件混淆”。

对此有何解释?

我只是编译检查这个代码在一个raspbian PI,并编译没有任何警告。

#include <sys/socket.h> #include <stdio.h> int main(int argc, char *argv[]) { printf ("SOL_SOCKET=%d\n", SOL_SOCKET); return 0; }