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 ...
随机推荐
- Visual Studio 原生开发的10个调试技巧(二)
原文:Visual Studio 原生开发的10个调试技巧(二) 我以前关于 Visual Studio 调试技巧的文章引起了大家很大的兴趣,以至于我决定分享更多调试的知识.以下的列表中你可以看到写原 ...
- SVN与eclipse整合和利用、SVN与Apache综合
SVN与eclipse综合 下载SVN插入(http://subclipse.tigris.org) http://subclipse.tigris.org/servlets/ProjectDocum ...
- HttpWebRequest BeginGetResponse EndGetResponse
private void Button_Click_4(object sender, RoutedEventArgs e) { HttpWebRequest request = HttpWebRequ ...
- 谁占用了我的Buffer Pool
原文:谁占用了我的Buffer Pool 转自:http://blogs.msdn.com/b/apgcdsd/archive/2011/01/11/buffer-pool.aspx 我在做SQL S ...
- php:的图形计算器的面向对象的版本武器2
通过自带部分result.class.php分流,由于这三个类继承shape这个类,让我们来看看,面向对象的继承. shape.class.shape档 <?php abstract class ...
- Android Volley 之自己定义Request
转载标明出处:http://blog.csdn.net/lmj623565791/article/details/24589837 今天群里一哥们须要自己定义Volley的Request的样例,于是产 ...
- leetcode 之 Unique Paths
Unique Paths A robot is located at the top-left corner of a m x n grid (marked 'Start' in the diagra ...
- enq: SQ - contention
--每分钟操作 SQL> select sql_id, mi, count(mi) 2 from (select event, sql_id, to_char(sample_time ...
- 【专访】【Spring常见问题汇总】【05】
种: 传播行为:传播行为定义了client与彼调用方法之间的事务边界. 隔离级别:隔离级别定义了一个事务可能受其它并发事务影响的程度. 仅仅读:表明事务是否是仅仅读的. 事务超时:指定事务执行的最长时 ...
- IOS SDK相机的详细解释/画廊(默认+他们的高清摄像头接口)
原版的blog,转载请注明出处 blog.csdn.net/hello_hwc 前言: 新NSURLSession的UploadTask的,结果写那个Demo的时候想要写成拍照上传.然后就想到先写一个 ...