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
相关问答:
写了个测试程序如下
struct hostent *hp;
char AlarmDevIP[20];
int x2;
hp = gethostbyname("www.google.com");
if (hp)
{
......
在自己的电脑上安装了ubuntu 就是想玩一下3D桌面,于是下载了
compizconfig-settings-manager
emerald
simple-ccsm
fusion
这些东西,安装完之后,我在电脑里点击了emerald ......
我下载的linux2.6.29中的wifi只支持wep方式加密. 怎么样让他能支持wpa或wpa II方式加密?
并且还有个奇怪的问题就是linux2.6.29中的wep密码要是5/13字节长的.其他的长度不支持.
mac80211\wext.c中有如下代码
stati ......
恳请高人指点....................拜托
Redhat9有点老了
很多人会推荐Ubuntu
我推荐Fedora12或CentOS 或RHEL5.4
我推荐archlinux,,,相当稳定。。。
引用
Redhat9有点老了
很多人会推荐Ubuntu
......