编译Linux kernel时设置交叉编译器
来源:互联网 发布:阿里云php环境搭建 编辑:程序博客网 时间:2024/06/07 03:00
在默认情况下,内核构建系统默认内核是本地编译,即编译的内核是运行在与宿主系统相同的体系架构上。如果是为其他的架构编译内核,即交叉编译,我们需要设置两个变量:ARCH和CROSS_COMPILE。其中:
ARCH指明目标体系架构,即编译好的内核运行在什么平台上,如x86、arm或mips等。
CROSS_COMPILE指定使用的交叉编译器的前缀。对于我们的交叉工具链来说,其前缀是i686-none-linux-gnu-。
在顶层的Makefile中,我们可以看到工具链中的编译器、链接器等均以$(CROSS_COMPILE)作为前缀:
linux-3.7.4/Makefile:
AS = $(CROSS_COMPILE)as
LD = $(CROSS_COMPILE)ld
CC = $(CROSS_COMPILE)gcc
CPP = $(CC) -E
AR = $(CROSS_COMPILE)ar
NM = $(CROSS_COMPILE)nm
STRIP = $(CROSS_COMPILE)strip
OBJCOPY = $(CROSS_COMPILE)objcopy
OBJDUMP = $(CROSS_COMPILE)objdump
可以使用多种方式定义这两个变量,比如通过在环境变量中定义ARCH、CROSS_COMPILE;或者每次执行make时,通过命名行为这两个变量的赋值,如:
make ARCH=i386 CROSS_COMPILE=i686-none-linux-gnu-
也可以直接更改顶层Makefile。这种方法比较方便,但是要小心,以免破坏Makefile文件。本书中我们采用这种方式,将顶层Makefile中的如下脚本:
linux-3.7.4/Makefile:
ARCH ?= $(SUBARCH)
CROSS_COMPILE ?= $(CONFIG_CROSS_COMPILE:"%"=%)
更改为:
linux-3.7.4/Makefile:
ARCH ?= i386
CROSS_COMPILE ?= i686-none-linux-gnu-
- 编译Linux kernel时设置交叉编译器
- Linux kernel交叉编译
- linux 交叉编译器设置
- linux设置交叉编译器路径
- Linux kernel 2.6 交叉编译工具链
- Linux kernel 2.6 交叉编译工具链
- Linux kernel 2.6 交叉编译工具链
- Linux kernel 2.6 交叉编译工具链
- 嵌入式linux使用交叉编译器编译ACE
- 编译交叉编译器
- buildroot编译交叉编译器
- 嵌入式交叉编译器,uboot,kernel,根文件系统,tslib,qt编译配置
- linux下3.4.1交叉编译器编译busybox-1.20.2
- arm-linux交叉编译器
- linux安装交叉编译器
- linux安装交叉编译器
- 安装Linux交叉编译器
- Linux交叉编译工具环境变量设置方法
- 不同浏览器对URI以及queryString是如何编码的?
- nyoj--1170--最大的数(数学技巧)
- c++ STL 算法库用法
- Android 屏幕适配
- java 排序算法
- 编译Linux kernel时设置交叉编译器
- EqualsBuilder和HashCodeBuilder
- Yii2 百度编辑器小部件
- Linux命令简介—ls
- 万金难买早知道
- 【转】一些Mat函数
- 1014. 福尔摩斯的约会 (20)
- 既然选择远方,就应该高高兴兴的走下去
- 获取子进程终止状态:wait和waitpid