如果在 Linux kernel 內, 取用某一個 struct 時, 出現這個錯誤訊息

error: dereferencing pointer to incomplete type

source sample 如下

if ( bdev->bd_disk )

    printk("%s\n",bdev->bd_disk->disk_name);

而錯在 printk 那一行

 

這個原因是, 在某一個 .h 內宣告好 bd_disk 的 struct(此例應該是 linux/fs.h)

struct bd_disk;

可是原型卻放在其他 .h 內, 這時就要加入原型的 struct

#include <linux/genhd.h>

就可以  compile 成功...

arrow
arrow
    全站熱搜

    richliu 發表在 痞客邦 留言(0) 人氣()