gpt4 book ai didi

c - 如何在c中为非内核应用程序指定内核头文件的路径?

转载 作者:太空宇宙 更新时间:2023-11-04 07:03:52 27 4
gpt4 key购买 nike

我需要转账fixp_t使用 <linux/fixp-arith.h> 从内核模块到客户端应用程序的键入数字(定义在 s16 ,最初是 ioctl ) .数据类型非常重要,如果变量大小不同 - 结果可能非常危险。

如果我包括 <linux/fixp-arith.h>在内核和客户端应用程序源代码中,客户端应用程序无法编译,因为它找不到 linux header 。

另一方面,gcc -I/usr/src/linux-headers-3.16.0-4-common/include/ app.c -o app不起作用,因为 <linux/types.h>重新定义现有类型,编译失败。

另一方面,我害怕自己指定任何数据类型,因为在每个拱门上 s16 ,等等 fixp_t可能不同。

如何解决这个问题?

最佳答案

来自 gcc 手册页:

-I dir Add the directory dir to the list of directories to be searched for header files.

因此,要添加您将使用的目录:

-I /usr/src/linux-headers-3.16.0-4-common/include/

但是,我认为用户空间程序不应该包含内核头文件。如果您的内核模块有一个用户空间 API,那么该 API 应该在一个与内核头文件分开的头文件中声明,并且只依赖于标准头文件。

关于c - 如何在c中为非内核应用程序指定内核头文件的路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35013118/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com