0
我想在list.h
(这里是我的list.h)中使用函数INIT_LIST_HEAD
,但是我得到错误undefined reference to INIT_LIST_HEAD
。 这里是我的源代码:对list.h中INIT_LIST_HEAD的未定义引用
#include <linux/list.h>
#include <stdlib.h>
int main(int argc, char** argv)
{
struct list_head* hd = NULL;
INIT_LIST_HEAD(hd);
exit(0);
}
这是不是一个函数。它在头部被定义为宏。 – ameyCU
只有在定义了__KERNEL__或_LVM_H_INCLUDE时才能读取头文件;在通常的包容卫队里面还有第二个“#if”防守队员。所以有一种可能性是你已经包含了一个空头,而'INIT_LIST_HEAD'被解释为常规函数(struct list_head没有错误信息,因为可以定义一个不完整类型的指针) –
@MOehm谢谢期待你的答复。我现在明白了。所以我不能在我的程序中使用'INIT_LIST_HEAD()'? – HuangJie