当前位置: 技术问答>linux和unix
模块编译:error: ‘inode_t’ has no member named ‘i_blksize’
来源: 互联网 发布时间:2016-12-14
本文导语: 我写的module 编译的时候 error: ‘inode_t’ has no member named ‘i_blksize’ 但是我的内核版本是2.6.18 我在内核的include/linux/fs.h中也找到了i_blksize这个字段 什么编译的时候会报这种错误? 请高手指教 | ...
我写的module 编译的时候
error: ‘inode_t’ has no member named ‘i_blksize’
但是我的内核版本是2.6.18
我在内核的include/linux/fs.h中也找到了i_blksize这个字段
什么编译的时候会报这种错误?
请高手指教
error: ‘inode_t’ has no member named ‘i_blksize’
但是我的内核版本是2.6.18
我在内核的include/linux/fs.h中也找到了i_blksize这个字段
什么编译的时候会报这种错误?
请高手指教
|
当前运行的内核版本和你编译的版本匹配吗?!
|
没有指向正确的头文件?
CFLAGS += -I/header_file_full_path
CFLAGS += -I/header_file_full_path
|
学习了,所编译内核和系统内核不一定是同一个版本。
|
完整的错误信息
还有相关代码
还有相关代码
|
你的mfs.h 包含#includes 没
inode_t 的定义及/programme/mfs/mfs.h:209的代码
inode_t 的定义及/programme/mfs/mfs.h:209的代码
|
很有可能编译内核和系统内核不是同一版本
|
make[1]: Entering directory `/usr/src/kernels/2.6.18-164.el5-xen-i686'
已经进入内核路径。我估计是楼上大侠说的,你的库文件没有包含进来,所以找不到。
已经进入内核路径。我估计是楼上大侠说的,你的库文件没有包含进来,所以找不到。
|
/usr/src/kernels/2.6.31.5-127.fc12.i686.PAE/include/config/ext2/fs.h
/usr/src/kernels/2.6.31.5-127.fc12.i686.PAE/include/config/qnx4fs/fs.h
/usr/src/linux/include/linux/fs.h
/usr/src/linux/include/config/btrfs/fs.h
/usr/src/linux/include/config/hfsplus/fs.h
上面是我的fs.h文件。
我 vi /usr/src/linux/usr/include/linux/fs.h
struct inodes_stat_t {
int nr_inodes;
int nr_unused;
int dummy[5]; /* padding for sysctl ABI compatibility */
};
没有找到inodes_t这个结构体,不知楼主确定了结构体所在的位置了?
/usr/src/kernels/2.6.31.5-127.fc12.i686.PAE/include/config/qnx4fs/fs.h
/usr/src/linux/include/linux/fs.h
/usr/src/linux/include/config/btrfs/fs.h
/usr/src/linux/include/config/hfsplus/fs.h
上面是我的fs.h文件。
我 vi /usr/src/linux/usr/include/linux/fs.h
struct inodes_stat_t {
int nr_inodes;
int nr_unused;
int dummy[5]; /* padding for sysctl ABI compatibility */
};
没有找到inodes_t这个结构体,不知楼主确定了结构体所在的位置了?