Linux开源模块移植概述暨交叉编译跨平台移植总结--摘自《嵌入式Linux驱动模板精讲与项目实践》

本文摘自《嵌入式Linux驱动模板精讲与项目实践》一书中的“开发与调试技巧”。

Linux的强大威力就在于有很多开源项目可以使用,通常很多需求可以通过寻找相关的开源模块做为快速解决方案。要把这些开源模块应用到嵌入式中,其中一个关键点就是要使用交叉编译工具对开源项目进行交叉编译。

根据具体情况,下载的开源项目在组织上有很多情况,在此对各种情况进行归类介绍。

1. 下载的开源软件包找不到Makefile

对于这种开源包通常是采用configure的方式组织的,那么第一步就是使用软件包中的configure生成Makefile文件。例如移植module-init-tools-3.2:

CC=arm-linux-gcc ./configure --prefix=/my_depmod --without-gun-ld --host=arm-linux

在./ configure之前指定交叉编译工具,指定安装路径为/my_depmod,后面选项是CPU相关的。各个选项可以通过./configure –help查看。

   第二步,生成Makefile之后,打开Makefile就可以看到:

prefix = /home/xlong.lin/workspace/sample/module-init-tools-3.2/my_depmode

CC = arm-linux-gcc

已经自动生成了对应的交叉编译Makefile。

第三步,Make进行编译。

第四步,make install安装。在指定的安装路径下得到最终需要的目标文件或者是库。

第五步,为了确认,使用file查看所得到的文件是否是嵌入式CPU中可以执行的。

2. 有些源码包下载解压之后有Makefile的,同时里面有CC选项的,这种情况比较简单,只要修改CC等选项即可。

   例如,移植goahead到单板上,解压之后Makefile中修改:

CC = arm-linux-gcc

AR = arm-linux-ar

   然后Make编译即可。

 如果Makefile中有CROSS_COMPILE也同样修改交叉编译工具即可。

3. 有Makefile但是找不到CC或者CROSS_COMPILE的情况。

这种情况采用 make CROSS= arm-linux-进行编译。

以上只对常见情况的交叉编译进行总结,无论哪种情况编译出来的都需要使用file工具确认是否交叉编译成功,是否可以在相应的CPU上执行。善于使用开源软件进行交叉编译移植可以快速的实现很多功能。

Linux开源模块移植概述暨交叉编译跨平台移植总结--摘自《嵌入式Linux驱动模板精讲与项目实践》,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。