搭建所需环境
Linux版本:Ubuntu 14.10
交叉编译器版本:arm-linux-gcc-4.4.3资源链接
何为交叉编译环境
搭建交叉编译环境,即安装、配置交叉编译工具链。在Ubuntu环境下编译出嵌入式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平台)上执行,嵌入式开发应使用嵌入式交叉编译工具链。
搭建步骤
1.解压缩
下载arm-linux-gcc-4.4.3.tar.gz压缩包,并将其放在/usr/local/目录下,使用解压缩命令将其解压缩至该文件夹内:
tar zxvf arm-linux-gcc-4.4.3.tar.gz
现在交叉编译程序集都在/usr/local/arm-linux-gcc-4.4.3/bin文件夹下。
2.配置环境变量
配置环境变量,把交叉编译工具链的路径添加到环境变量PATH中去,这样就可以在任何目录下使用这些工具。记下上一步中的安装路径,使用命令:vi /etc/profile编辑profile文件,添加环境变量, 在profile中最后一行添加:
export PATH=$PATH:/usr/local/arm-linux-gcc-4.4.3/bin
这个路径就是那个bin目录所在的路径。
编写完使用wq保存退出。
3.使环境变量生效并验证
然后使用命令:
source /etc/profile使环境变量生效(在不同用户下最好都运行一下此语句,例如shgao和root用户下都运行一下)。
检查是否将路径加入到PATH:
echo $PATH显示的内容中有/usr/local/arm-linux-gcc-4.4.3/bin,说明已经将交叉编译器的路径加入PATH。
之后可以使用命令:
arm-linux-gcc -v
查看环境是否搭建成功,如果输出以下内容,代表已经搭建成功:
编译生成二进制文件
然后可以使用命令:
arm-linux-gcc HZK16.cpp -o arm_HZK16
编译生成可以在arm上运行的二进制文件。
因为生成的arm_HZK16为arm上运行的二进制文件,所以在Ubuntu中执行出错,x86_HZK16是用gcc编译器生成的可执行文件,./x86_HZK16运行结果如上。