python交叉编译环境_嵌⼊式交叉编译环境搭建
所谓的搭建交叉编译环境,即安装、配置交叉编译⼯具链。在该环境下编译出嵌⼊式Linux系统所需的操作系统、应⽤程序等,然后再上传到⽬标机上。
交叉编译⼯具链是为了编译、链接、处理和调试跨平台体系结构的程序代码。对于交叉开发的⼯具链来说,在⽂件名称上加了⼀个前缀,⽤来区别本地的⼯具链。例如,arm-linux-表⽰是对arm的交叉编译⼯具链;arm-linux-gcc表⽰是使⽤gcc的编译器。除了体系结构相关的编译选项以外,其使⽤⽅法与Linux主机上的gcc相同,所以Linux编程技术对于嵌⼊式同样适⽤。不过,并不是任何⼀个版本拿来都能⽤,各种软件包往往存在版本匹配问题。例如,编译内核时需要使⽤arm-linux-gcc-4.3.3版本的交叉编译⼯具链,⽽使⽤arm-linux-gcc-
3.4.1的交叉编译⼯具链,则会导致编译失败。
那么gcc和arm-linux-gcc的区别是什么呢?区别就是gcc是linux下的C语⾔编译器,编译出来的程序在本地执⾏,⽽arm-linux-gcc⽤来在linux下跨平台的C语⾔编译器,编译出来的程序在⽬标机(如ARM平台)上执⾏,嵌⼊式开发应使⽤嵌⼊式交叉编译⼯具链。
嵌⼊式交叉编译环境的搭建过程图⽂解说
⼯具/原料
电脑系统:win7系统。虚拟机系统:workstation6.5 。虚拟机安装的linux版本:fedora9.0。内核:linux2.6.25。
⽅法/步骤1我使⽤的交叉编译⼯具链是arm-linux-gcc-4.4.3,把它放在linux系统的路径是图⼀
嵌⼊式交叉编译环境的搭建过程图⽂解说2如图⼀所⽰,在linux系统的路径/home/song/share下放了交叉编译⼯具链arm-linux-gcc-4.4.3的压缩包,另⼀个版本的不⽤。有的⼈可能会问到怎么把这个压缩包弄到虚拟机的linux的系统的,我是通过samba服务从主机复制到虚拟机的,这⾥的share⽂件夹就是我samba服务器的⼯作⽬录,多了不说,这不是重点。
然后通过命令mkdir embedded 建⽴⼀个arm-linux-gcc的安装⽬录,如图⼆所⽰。当然安装路径和⽬录名称“embedded”可以依⾃⼰的喜好⽽定。
linux下gcc编译的四个步骤嵌⼊式交叉编译环境的搭建过程图⽂解说3然后通过命令将share⽂件夹下的arm-linux-gcc-4.4.复制到这⾥的embedded⽂件夹下,如图四所⽰。当然这⾥你也可以不进⾏这⼀步我这是为了⽅便以后管理,将arm-linux-gcc安装到embedded⽂件夹下,⽅便以后寻。
嵌⼊式交叉编译环境的搭建过程图⽂解说4然后使⽤tar命令:tar zxvf arm-gcc-4.4.将embedde
d⽂件夹下的arm-linux-gcc-
4.4.解压缩安装到当前⽬录下 ,如图五所⽰。
嵌⼊式交叉编译环境的搭建过程图⽂解说5执⾏完解压缩命令,就已经将交叉编译⼯具链arm-linux-gcc-4.4.3安装到linux系统上了,这⾥默认安装到了图六所⽰的路径上。
嵌⼊式交叉编译环境的搭建过程图⽂解说6接下来配置系统环境变量,把交叉编译⼯具链的路径添加到环境变量PATH中去,这样就可以在任何⽬录下使⽤这些⼯具。记下图六中的安装路径,使⽤图七中的命令:vi/etc/profile 编辑profile⽂件,添加环境变量。
嵌⼊式交叉编译环境的搭建过程图⽂解说7在profile中的位置处,添加图⼋所⽰的红线标注的⼀⾏,路径就是图六中的红线标注的路径后⾯加上/4.4.3/bin。
嵌⼊式交叉编译环境的搭建过程图⽂解说8图⼋中的路径⼀定是你⾃⼰的安装路径,可以使⽤pwd命令查⼀下那个bin⽬录的路径。添加完路径后,保存退出。接下来使⽤命令:source/etc/profile,是修改后的profile⽂件⽣效,如图九所⽰。
嵌⼊式交叉编译环境的搭建过程图⽂解说9然后,使⽤命令:arm-linux-gcc -v查看当前交叉编译链⼯具的版本信息,如图九中的红线标注第③⾏所⽰。很明显从图九可以看到,如果不执⾏第②步,则查看
版本信息不成功。
然后验证交叉编译⼯具链是否安装成功并且可以使⽤,如图九所⽰,随便⼀个⽬录编辑⼀个hello源代码。
嵌⼊式交叉编译环境的搭建过程图⽂解说
嵌⼊式交叉编译环境的搭建过程图⽂解说10编辑好hello.c⽂件后,保存退出。然后使⽤交叉编译器对hello.c进⾏编译,并⽣成可执⾏⽂件hello,如图11所⽰。
嵌⼊式交叉编译环境的搭建过程图⽂解说11这⾥⽣成的hello⽂件并不能像gcc编译出来的⽂件那样直接使⽤“./hello”命令执⾏并显⽰内容, 如图12所⽰,因为它是⼀个⼆进制⽂件,只能下载到开发板上执⾏!
嵌⼊式交叉编译环境的搭建过程图⽂解说12⾄此,搭建交叉编译环境步骤结束。