交叉编译的简单心得

交叉编译,就是在一个平台上生成另一个平台上的可执行代码。有时是因为目的平台上不允许或不能够安装我们所需要的编译器,而我们又需要这个编译器的某些特征;有时是因为目的平台上的资源贫乏,无法运行我们所需要编译器;这个时候就需要用到交叉编译。

以下是交叉编译的一个例子(目标机器是使用的Linux2.6.34的内核版本),Makefile文件:

TARGET = xxx_module
OBJS =  xxx1.o xxx2.o 

EXTRA_CFLAGS += -w -g

KDIR = /home/redhat/Desktop/amc718_bsp_source_release3/kernel/linux-2.6.34.6
PWD = $(shell pwd)

obj-m      := $(TARGET).o

$(TARGET)-objs := $(OBJS)

default:
	make -C $(KDIR) M=$(PWD) modules ARCH=powerpc CROSS_COMPILE=/opt/freescale/usr/local/gcc-4.5.55-eglibc-2.11.55/
        powerpc-linux-gnu/bin/powerpc-linux-gnu-
clean:
	-rm -f *.o *.ko .*.cmd .*.flags *.mod.c *~ core .depend .tmp_versions

depend .depend dep:
	$(CC) $(CFLAGS) -M *.c > .depend


ifeq (.depend,$(wildcard .depend))
include .depend
endif

1、该文件先指明模块源码中各文件的依赖关系,以及要生成的目标模块名。

2、-C $(KDIR) 指明跳转到内核源码目录下读取那里的Makefile;M=$(PWD) 表明然后返回到当前目录继续读入、执行当前的Makefile

3、depend 的作用:如果不使用这个功能, 则当你修改一个头文件时, 必须重新把所有的源文件都编译一次, 使用depend ,就可只编译包含此头文件的源文件,可大大节省时间。

depend .depend dep:
	$(CC) $(CFLAGS) -M *.c > .depend
gcc 分析源文件然后产生一个头文件的列表和它的依赖关系。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值