当前位置: 技术问答>linux和unix
帮帮忙,一个netfilter程序的编绎错误.
来源: 互联网 发布时间:2015-09-22
本文导语: ////////错误提示:///////////// /tmp/ccropISw.o: In function `init_module': /tmp/ccropISw.o(.text+0x43): undefined reference to `nf_register_hook' /tmp/ccropISw.o: In function `cleanup_module': /tmp/ccropISw.o(.text+0x63): undefined reference to `nf_unregister_hook' c...
////////错误提示://///////////
/tmp/ccropISw.o: In function `init_module':
/tmp/ccropISw.o(.text+0x43): undefined reference to `nf_register_hook'
/tmp/ccropISw.o: In function `cleanup_module':
/tmp/ccropISw.o(.text+0x63): undefined reference to `nf_unregister_hook'
collect2: ld returned 1 exit status
还有一个问题就是如果用g++ 编绎这样的一个cpp文件会出现一大堆错误???????????
//源代码如下:
#define __KERNEL__
#define MODULE
#include
#include
#include
#include
#include
/* 用于注册我们的函数的数据结构 */
static struct nf_hook_ops nfho;
/* 注册的hook函数的实现 */
unsigned int hook_func(unsigned int hooknum,
struct sk_buff **skb,
const struct net_device *in,
const struct net_device *out,
int (*okfn)(struct sk_buff *))
{
return NF_ACCEPT;
}
/* 初始化程序 */
int init_module()
{
/* 填充我们的hook数据结构 */
nfho.hook = hook_func; /* 处理函数 */
nfho.hooknum = NF_IP_PRE_ROUTING; /* 使用IPv4的第一个hook */
nfho.pf = PF_INET;
nfho.priority = NF_IP_PRI_FIRST; /* 让我们的函数首先执行 */
nf_register_hook(&nfho);
return 0;
}
/* 清除程序 */
void cleanup_module()
{
nf_unregister_hook(&nfho);
}
int main(int argc, char *argv[])
{
init_module();
//sleep(60); //使用一分钟
cleanup_module();
return 0;
}
/tmp/ccropISw.o: In function `init_module':
/tmp/ccropISw.o(.text+0x43): undefined reference to `nf_register_hook'
/tmp/ccropISw.o: In function `cleanup_module':
/tmp/ccropISw.o(.text+0x63): undefined reference to `nf_unregister_hook'
collect2: ld returned 1 exit status
还有一个问题就是如果用g++ 编绎这样的一个cpp文件会出现一大堆错误???????????
//源代码如下:
#define __KERNEL__
#define MODULE
#include
#include
#include
#include
#include
/* 用于注册我们的函数的数据结构 */
static struct nf_hook_ops nfho;
/* 注册的hook函数的实现 */
unsigned int hook_func(unsigned int hooknum,
struct sk_buff **skb,
const struct net_device *in,
const struct net_device *out,
int (*okfn)(struct sk_buff *))
{
return NF_ACCEPT;
}
/* 初始化程序 */
int init_module()
{
/* 填充我们的hook数据结构 */
nfho.hook = hook_func; /* 处理函数 */
nfho.hooknum = NF_IP_PRE_ROUTING; /* 使用IPv4的第一个hook */
nfho.pf = PF_INET;
nfho.priority = NF_IP_PRI_FIRST; /* 让我们的函数首先执行 */
nf_register_hook(&nfho);
return 0;
}
/* 清除程序 */
void cleanup_module()
{
nf_unregister_hook(&nfho);
}
int main(int argc, char *argv[])
{
init_module();
//sleep(60); //使用一分钟
cleanup_module();
return 0;
}
|
nf_unregister_hook是在哪个库里面的?连接它