编写CMA驱动 遇到 error: dereferencing pointer to incomplete type

写了一个CMA驱动,make编译后:

 error: dereferencing pointer to incomplete type ‘struct cma’
     cma->name, cma->base_pfn);

意思是cma只是声明了。

cma.h在目录include/linux/cma.h里,里面空有一句

struct cma;

对,这句只是做了声明,但并未做任何定义和初始化。那到底在哪定义的呢?

很奇葩,在mm目录下还有一个cma.h,里面定义了cma结构体。

 

妈的,反手就往Makefile里添加了

EXTRA_CFLAGS := -I$(KERNEL_DIR)/mm

all:
    make -C $(KERNEL_DIR) M=$(CUR_DIR) EXTRA_CFLAGS=$(EXTRA_CFLAGS) modules

 

搞定。。。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章