linux makefile include问题
我在我的linux top directory 的makefile中找到 一句
LINUXINCLUDE := -Iinclude \
$(if $(KBUILD_SRC),-Iinclude2 -I$(srctree)/include) \
-I$(srctree)/arch/$(hdr-arch)/include \
-include include/linux/autoconf.h
我在/arch/arm/mach_tegra/include
但是 我在/drivers/XXX/XXX.c 的文件中加了个头文件,这个头文件是上面mach_tegra/include/YY.h
编译并没有提示说:“没有该文件”。而是编译通过。
我想说 这是不是上面的Makefile的LINUXINCLUDE的因素阿。但是不能肯定。我想知道这是如何实现的
makefile 只是检查依赖关系。至于你的include 估计会在 CFLAGS 变量中定义文件包含。
你上面的只是makefile中的变量的定义,至于makefile中的依赖关系怎么起作用的还得看具体的依赖语句。
drivers目录下的所有文件 都可以加入/arch/arm/mach_tegra/include/下所有的.h文件,所以这个CFLAGS应该是在top directory 的Makefile 指定的吧,可是找了下 没有显示的指定。
Makefile是linux kernel 的Makefile, mach_tegra是 可选择的一个ARM平台。不知道 这个 平台下的include是怎么被drivers包含的呢?
mach_tegra/include/YY.h
你的.c 可以
#incluyde <asm/arch/YY.h>
因为 include 下的asm arch都是软连接
靠的是主makefile 里的 ARCH 变量指定 asm
是靠.config 里的 CONFIG_ARCH_XXXX 确定arch
可是 我的C文件以及所有的驱动C文件 可以直接#include<YY.h>
并没有加入/asm/arch/include/YY.h的完整物理路径 ,只是知道 在 .conf
相关问答:
在自己的电脑上安装了ubuntu 就是想玩一下3D桌面,于是下载了
compizconfig-settings-manager
emerald
simple-ccsm
fusion
这些东西,安装完之后,我在电脑里点击了emerald ......
linux 下C编程 集成开发环境 用什么比较好
我初步选定 codeblock
呵呵 还有 在linux 写了一个打印中文的代码,而今天在windows 下查看那个代码 , 是乱码 而后想到先用 EditPlus先进行编辑 然后复制 ......
咨询QQ:269562808
bzip2recover
功能说明:用来修复损坏的.bz2文件。
语法:bzip2recover[.bz2压缩文件]
补充说明:bzip2是以区块的方式来压缩文件,每个区块视为独立的单位。因此,当某一区
块损坏时,便可利 ......
各位老师好:小弟有一点问题 琢磨了好久想请教大师们:
我在安装mysql的时候 安装到
./configure \
--prefix=/usr/local/mysql \
--with-extra-charsets=all
这步的时候出现:
configure: unknown option --p ......
请我用FCK上传文件,在本地的windows机上测试可以,但部署到linux服务器上就上传不了文件,上传文件时一直卡在那里。望各位大虾指点,谢谢!
路过,帮你顶一下。。。。。。。。。。。。。。
上传文件的路径问题, ......