【发布时间】:2016-08-15 02:43:56
【问题描述】:
我正在尝试编写一个使用来自<linux/netdevice.h> 的first_net_device() 和来自<sys/socket.h> 的getsockname() 的Linux 内核模块。编译时的问题是这两个头文件有一些重复的定义,导致编译失败。我该如何解决这个问题?谢谢
【问题讨论】:
-
使用extern导入其中一个函数,不包含header
-
之后如何让链接器知道在哪里可以找到
getsockname()的定义? -
看到有这样的冲突名称令人惊讶。也许不链接共享库之一并使用
dlopen打开它会起作用。 -
getsockname是一个用户空间函数。它不能在 kernel 中使用。尝试找到语义相似的核函数。包括内核代码的用户空间头文件也不起作用。
标签: c linux sockets linux-kernel