内核头文件使用

  1. 转自http://blog.chinaunix.net/uid-22028680-id-3053966.html
  2. http://blog.chinaunix.net/uid-24780853-id-3301606.html

  3. 1、在内核源码根目录下运行: 'make headers_install',这样内核Makefile会把提供给应用程序的头文件提取并放在内核源码的“usr/include”目录下。
  4. (请勿担心git会发现文件增加了,usr目录中的.gitignore文件已经让git忽略了其下的include文件夹)
  5. 2、在编译应用程序的时候,在GCC的CFLAG参数中添加“-I(内核源码路径)/usr/include”,这样编译器就知道在编译时找到相关的头文件了。
  平时我们在编译应用程序的时候,不可避免的会使用内核头文件,比如v4l2,字符驱动等等。此时直接的使用内核源码中include目录下的头文件,可能就会有警告。这个警告现在看来仅在"include/linux/types.h"中存在,因为这个文件中包含了很多内核自定义的类型,你的应用程序如果也做了这样的定义就可能出现问题。此时你就应该使用内核帮你处理过的专门提供给用户空间的头文件,这个就是为什么'make headers_install'会将头文件(默认)放在usr(用户)目录下的原因。

make headers_install ARCH=arm INSTALL_HDR_PATH=/usr/include

其中ARCH指定要产生哪种体系结构的头文件,INSTALL_HDR_PATH指定要导出头文件的目录。

如果只是执行make headers_install ,则导出所有体系结构的头文件到默认目录”./usr/include“

如果是自己定义的头文件,要想导出,需要修改头文件下的Kbuild文件,例如我们自己定义的头文件在include/linux/generic/目录下

有如下头文件:

gsm.h, sensor.h

 

需要修改Kbuild文件:

header-y += gsm.h

header-y += sensor.h

如果是目录的话,添加

header-y += file/


猜你喜欢

转载自blog.csdn.net/wangliang888888/article/details/78490570
今日推荐