編寫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

 

搞定。。。。

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