当前位置: 技术问答>linux和unix
#include <linux/*.h> :到底加载的哪个路径下的文件?
来源: 互联网 发布时间:2015-12-03
本文导语: 具体情况是这样的:为了学习Linux下的设备驱动程序,我下载了fc5的内核再重新编译了一下,在按照《Linux设备驱动程序》这本书上编写了程序后发现insmod模块时指示:disagrees about version of symbol struct_module 于是怀疑...
具体情况是这样的:为了学习Linux下的设备驱动程序,我下载了fc5的内核再重新编译了一下,在按照《Linux设备驱动程序》这本书上编写了程序后发现insmod模块时指示:disagrees about version of symbol struct_module
于是怀疑是否运行的版本和我编译的版本不同,但是仔细检查后发现没有问题。所以我想会不会在应用头文件的version.h有问题,但是结果发现有两个include文件夹下包含这些头文件:
源码树:file:///usr/src/redhat/SOURCES/linux-2.6.15/include/linux(这个文件夹下是我编译的内核的目录)
还有一个是:file:///usr/include/linux(这个似乎本来就有的)
而且这两个文件夹下的同一个头文件内容还有不同。
那么现在写的这些内核程序到底include的是哪个下面的?我写的模块出错是不是和这个有关系?知道的兄弟一定要帮忙阿,我都已经为这个小问题搞的两天了!!!
于是怀疑是否运行的版本和我编译的版本不同,但是仔细检查后发现没有问题。所以我想会不会在应用头文件的version.h有问题,但是结果发现有两个include文件夹下包含这些头文件:
源码树:file:///usr/src/redhat/SOURCES/linux-2.6.15/include/linux(这个文件夹下是我编译的内核的目录)
还有一个是:file:///usr/include/linux(这个似乎本来就有的)
而且这两个文件夹下的同一个头文件内容还有不同。
那么现在写的这些内核程序到底include的是哪个下面的?我写的模块出错是不是和这个有关系?知道的兄弟一定要帮忙阿,我都已经为这个小问题搞的两天了!!!
|
那么我是否可以用::/usr/src/redhat/SOURCES/linux-2.6.15/include/linux下的文件替换掉/usr/include/linux下的文件,以保证编译后的模块正确?
|
那么我是否可以用::/usr/src/redhat/SOURCES/linux-2.6.15/include/linux下的文件替换掉/usr/include/linux下的文件,以保证编译后的模块正确?
--->
可以,但应该整体替换
-I /usr/src/redhat/SOURCES/linux-2.6.15/include
--->
可以,但应该整体替换
-I /usr/src/redhat/SOURCES/linux-2.6.15/include
|
/usr/include/linux/*