QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2048|回复: 5

:?:新手请教:include头文件路径的问题

[复制链接]
发表于 2005-7-6 22:38:32 | 显示全部楼层 |阅读模式
编写的一个程序中有包含头文件#include "asm/uaccess.h"
gcc编译时用的是最基本的参数,没有用到像包含路径,包含库的参数
出现的信息是:
drive3.c:17:62: asm/uaccess.h: 没有那个文件或目录
In file included from /usr/include/linux/fs.h:23,
                 from drive3.c:18:
......
像这种include的头文件,默认的路径都是在/usr/include/下的吗?(从In file included from /usr/include/linux/fs.h:23的猜测)
还是在/usr/src/inux-2.4.20-8/include? (linux-2.4.20-8里装的是内核的源程序)
(个人认为不大可能,因为/usr/src/inux-2.4.20-8/include/asm是有uaccess.h这个文件的.但不确定.)
这种情况我该怎么办啊?

在网上搜过这方面的,但讲的都不具体.那个specs里的文法看不懂啊.各位能够一些建议或是该看哪些文档吗?
谢谢了!
发表于 2005-7-7 09:11:35 | 显示全部楼层
一般都在/usr/include下,如果不在,可以用-I参数指定路径。
回复

使用道具 举报

 楼主| 发表于 2005-7-7 10:12:04 | 显示全部楼层

版主:我这样理解您的话,不知对否,请指教

按您的意思:
当找不到某个文件时,就加上该文件在内核源代码中的路径.
即上文找不到 "asm/uaccess.h" ,就加上-I(内核源代码路径)/include/asm
这样理解对吗

我还看到网上一篇文章说,把内核源码中的asm文件夹复制到/usr/include/asm
,linux文件夹复制到/usr/include/linux
这种方法可行吗

请指教,谢谢啦!
回复

使用道具 举报

 楼主| 发表于 2005-7-7 10:47:01 | 显示全部楼层

加了路径-I,编译还是不行

加了路径进去编译了,还是不行
# gcc -D__KERNEL__ -Wall -O2 -DMODULE -I/usr/src/linux-2.4.20-8/include/asm -c drive3.c -o drive3-arm.o
drive3.c:17:62: asm/uaccess.h: 没有那个文件或目录
In file included from /usr/include/linux/fs.h:23,
from drive3.c:18:
... ...
回复

使用道具 举报

发表于 2005-7-7 11:33:19 | 显示全部楼层
-I/usr/src/linux-2.4.20-8/include/
回复

使用道具 举报

发表于 2005-7-7 13:47:02 | 显示全部楼层
参考 $KERN_SRC/Documentation 下的一个 kbuild.txt 吧,里面有编译核心模块的具体指南。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-5 17:30 , Processed in 0.040285 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表