本文摘录《嵌入式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在运行。善于利用开源软件的交叉编译移植可以实现非常高速的多用途。
版权声明:本文博客原创文章,博客,未经同意,不得转载。