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驱动模板简洁和工程实践》的更多相关文章
- Golang 交叉编译跨平台的可执行程序 (Mac、Linux、Windows )
起因: 在项目中,我们每一次提交都需要添加commit 信息,而且我们的commit 信息,比较繁琐.我决定用golang语言编写一个小工具. 我决定使用语言:golang,使用工具:gox包. go ...
- 交叉编译HTOP并移植到ARM嵌入式Linux系统
原创作品,允许转载,转载时请务必以超链接形式标明文章.作者信息和本声明,否则将追究法律责任. 最近一直在完善基于Busybox做的ARM Linux的根文件系统,由于busybox是一个精简的指令集组 ...
- 交叉编译VIM并移植到ARM嵌入式Linux系统
原创作品,允许转载,转载时请务必以超链接形式标明文章.作者信息和本声明,否则将追究法律责任. 众所周知,vim是vi的增强版本,实际体验要比vi好用很多,由于笔者为ARM系统制作的基于busybo ...
- 龙尚3G、4G模块嵌入式Linux系统使用说明【转】
本文转载自;http://blog.csdn.net/zqixiao_09/article/details/52506812 驱动部分: 1.kernle/drivers/usb/serial/opt ...
- 【分享】4412开发板-嵌入式Linux开发须要掌握的基础知识和技能
本文转自迅为电子论坛:http://www.topeetboard.com 1.Linux 基础 安装Linux操作系统 Linux文件系统 Linux经常使用命令 Linux启动过程具体解释 熟悉L ...
- 嵌入式Linux开发系列之一: 走进嵌入式Linux的世界
转载:http://www.ibm.com/developerworks/cn/linux/l-embed/part1/index.html 随着信息化技术的发展和数字化产品的普及,以计算机技术. ...
- 嵌入式Linux会议LinuxCon欧洲的时间表公布
From: http://linuxgizmos.com/embedded-linux-conference-and-linuxcon-europe-schedules-posted/ Linux基金 ...
- 【课程分享】深入浅出嵌入式linux系统移植开发 (环境搭建、uboot的移植、嵌入式内核的配置与编译)
深入浅出嵌入式linux系统移植开发 (环境搭建.uboot的移植.嵌入式内核的配置与编译) 亲爱的网友,我这里有套课程想和大家分享,假设对这个课程有兴趣的,能够加我的QQ2059055336和我联系 ...
- 嵌入式linux和嵌入式android系统有什么区别和联系?
转自:http://bbs.eeworld.com.cn/thread-430437-1-1.html 这个问题很多人问,尤其是初入嵌入式的菜鸟.其实大家都认为android是java,已经不是lin ...
随机推荐
- 解决LINUX vncserver 启动 could not open default font 'fixed'错.
安装vncserver例如,会发生以下错误: vncext: VNC extension running! vncext: Listening for VNC connecti ...
- 北京设计模式学习组bjdp.org第7次活动(2013.08.04)回顾会纪要
时间:2013.08.04,9am-7pm 地点:北京龙泉寺(北京凤凰岭风景区内) 参加人数:北京龙泉寺信息中心(20人).北京设计模式学习组(9人) 活动要点: 1)寺院巡礼:义工师兄带领参观寺院. ...
- how tomcat works 札记(两)----------一个简单的servlet集装箱
app1 (看着眼前这章建议读者,看how tomcat works 札记(一个)----------一个简单的webserver http://blog.csdn.net/dlf123321/art ...
- SharePoint 2013 配置开发环境,需安装VS2012插件
原文:SharePoint 2013 配置开发环境,需安装VS2012插件 SharePoint 2013已经安装好了,接下来就是配置开发环境,安装VS2012,但是,装好了以后,发现没有ShareP ...
- 7-days-asp-dotnet-mvc-day1
目录 第 1 天 第 2 天 第 3 天 第 4 天 第 5 天 第 6 天 第 7 天 0. 前言 今天是开心的一天.因为我们终于来到了系列学习的最后一节.我相信你喜欢之前的课程,并从中学到了许多. ...
- java RC4加密和解码
package com.*; public class RC4 { public static String decry_RC4(byte[] data, String key) { if (data ...
- SVN在branch兼并和游戏patch(1)
近期要hadoop2.4关于上面的行hdfs raid,但在此之前hdfs raid如svn 的branch发展,领导人希望patch方式hdfs raid功能进球trunk里面去,这里涉及到svn ...
- 对Unity3d C#手动处理异常产生
System.AppDomain.CurrentDomain.UnhandledException += new System.UnhandledExceptionEventHandler(_OnUn ...
- Bringing up interface eth0: Device eth0 does not seem to be present, delaying initialization
跑 service network restart NIC出现无法启动,他说,没有发现 Bringing up interface eth0: Device eth0 does not seem t ...
- POJ 1742 Coins (多重背包)
Coins Time Limit: 3000MS Memory Limit: 30000K Total Submissions: 28448 Accepted: 9645 Descriptio ...