Linux内核模块中冲突的头文件
问题描述:
我正在尝试编写一个使用first_net_device()
的<linux/netdevice.h>
和getsockname()
来自<sys/socket.h>
的Linux内核模块。编译时的问题是这两个头文件有一些重复的定义,导致编译失败。我该如何解决这个问题?谢谢Linux内核模块中冲突的头文件
答
sys/socket.h
头不是内核头。当你尝试将它添加到你的模块时,你几乎肯定会得到错误,因为它不是内核的一部分。看看这个答案详细信息....
Why can't we use C standard library functions in kernel development?
使用的extern导入的功能之一,而不包括头部 – yaman
之后,我怎么让链接器知道在哪里找到的'的定义getsockname()'? – pipiloverock
这令人惊讶,看到有这样的冲突名称。也许不能与其中一个共享库链接并用['dlopen'](http://linux.die.net/man/3/dlsym)打开它。 – jdarthenay