如何查看交叉编译工具链版本信息
‘壹’ 如何交叉编译开源库
所谓的搭建交叉编译环境,即安装、配置交叉编译工具链。在该环境下编译出嵌入式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”可以依自己的喜好而定。
步骤阅读
然后通过命令将share文件夹下的arm-linux-gcc-4.4.3.tar.gz复制到这里的embedded文件夹下, 当然这里你也可以不进行这一步我这是为了方便以后管理,将arm-linux-gcc安装到embedded文件夹下,方便以后寻找。
然后使用tar命令:tar zxvf arm-gcc-4.4.3.tar.gz将embedded文件夹下的arm-linux-gcc-4.4.3.tar.gz解压缩安装到当前目录下
执行完解压缩命令,就已经将交叉编译工具链arm-linux-gcc-4.4.3安装到linux系统上了,这里默认安装到了图六所示的路径上。
接下来配置系统环境变量,把交叉编译工具链的路径添加到环境变量PATH中去,这样就可以在任何目录下使用这些工具。 vi /etc/profile 编辑profile文件,添加环境变量。
在profile中的位置处,添加图八所示的红线标注的一行,路径就是图六中的红线标注的路径后面加上/4.4.3/bin。
图八中的路径一定是你自己的安装路径,可以使用pwd命令查找一下那个bin目录的路径。添加完路径后,保存退出。接下来使用命令:source /etc/profile,是修改后的profile文件生效,如图九所示。
然后,使用命令:arm-linux-gcc -v查看当前交叉编译链工具的版本信息,如图九中的红线标注第③行所示。很明显 可以看到,如果不执行第②步,则查看版本信息不成功。
然后验证交叉编译工具链是否安装成功并且可以使用,如图九所示,随便找一个目录编辑一个hello源代码。
编辑好hello.c文件后,保存退出。然后使用交叉编译器对hello.c进行编译,并生成可执行文件hello
这里生成的hello文件并不能像gcc编译出来的文件那样直接使用“./hello”命令执行并显示内容 因为它是一个二进制文件,只能下载到开发板上执行!
至此,搭建交叉编译环境步骤结束。
‘贰’ 怎么查linux的交叉工具链版本
如果交叉编译工具链的路径已经添加到path变量中的话,直接使用... -v即可查看
比如我的是arm-linux-gnueabihf-g++
那么直接arm-linux-gnueabihf-g++ -v或者是--version就可以得到版本信息了。
‘叁’ Ubuntu 下搭建 GCC 交叉编译工具链
Ubuntu环境中搭建GCC跨平台编译工具链是嵌入式开发的重要步骤,它允许在X86架构的PC上编译ARM架构的代码。首先,交叉编译是区别于本地编译的概念,针对不同平台的程序编译,而交叉编译工具链则是一系列工具的集合,包括预处理、编译、汇编和链接等,自动化编译流程,生成可移植的二进制程序。
在Ubuntu下,我们需要安装Linaro出品的针对Cortex-A7内核的ARM-Linux-GNU-EABI编译器,根据系统位数选择32或64位版本。首先,下载编译器并将其复制到特定目录如/usr/local/arm,解压后,在/etc/profile中添加环境变量。为了确保编译器的正常使用,还需要安装相应的库。验证安装成功的方法是通过运行交叉编译器并查看版本号,如arm-linux-gnueabihf-gcc,如显示版本号,说明工具链安装已成功。
总结来说,Ubuntu下的GCC交叉编译工具链搭建旨在为嵌入式开发提供必要的环境,通过选择合适的工具链版本,配置环境变量,并验证工具的可用性,开发者可以在X86平台高效地编译ARM代码,实现跨平台开发。
‘肆’ 怎样检查linux交叉工具链 安装成功
配置好PATH环境变量(加入你交叉编译工具链的目录),比如你arm交叉工具链,可能名字叫arm-linux-gcc。执行arm-linux-gcc -v,如果看到如上图所示提示版本信息,基本上就算安装成功了吧。GOOD LUCK~
‘伍’ 交叉编译工具链 arm-arago-linux-gnueabi-gcc 中的arago和gnueabi代表什么意思
arm-arago-linux-gnueabi-gcc
arm :CPU Architecture
arago: Hardware Platform or Vendor
linux:Operating System
gnueabi: C Library
arago 那个段落,表示的是供应商,对于 arm 这里也可以是 hardfloat 或者 softfloat ,也就是使用的是硬浮点还是软浮点。当然其实这个东西是在编译 gcc 时,通过 --with-float= 指定而不是通过这里进行识别芦州。但有的时候,一些编译脚本会识别这里来确定浮点运算器是软是硬。
gnueabi 是 C 函数库的使用,比如 gnu 是 GNU C Library ,也就是 glibc 。对应的还有 uclibc 。附加的 eabi 其实是说,使用的是新的 EABI 二进制接口 Embedded application binary interface 。这个嵌入式专用接口比老的更好用,效率更高而且支持新的一些硬件功能。码伍老的教 OABI 。当然,同 float 一样可以通过参数直接定义。
这一大堆联合起来,只是为了直观的表现并且区别使用用途和功能定义。没有必陪模蔽要太过于关注。
‘陆’ 怎么查看交叉编译工具链是glibc
在编辑工具当中我们看一下具体的连接操作方式,然后进入高级查看模式,就可以看到是否是glibc操作模式。
‘柒’ Ubuntu14.04 用arm-linux-gcc 4.4.3 配置交叉编译环境问题
安装步骤
1、将压缩包arm-linux-gcc-4.4.3.tar.gz存放在一个目录下,这个目录就是你等会解压缩的目录,以后这个目录就不能随便删掉了
‘捌’ 如何设置arm开发板交叉编译工具链
如何设置arm开发板交叉编译工具链
1.13.6 Compile菜单
按Alt+C可进入Compile菜单, 该菜单有以下几个内容,如图所示:
1. Compile to OBJ:将一个C源文件编译生成.OBJ目标文件, 同时显示生成的文件名。其热键为 Alt+F9。
2. Make EXE file:此命令生成一个.EXE的文件, 并显示生成的.EXE文件名。其中.EXE文件名是下面几项之一:
1) 由Project/Project name说明的项目文件名。
2) 若没有项目文件名, 则由Primary C file说明的源文件。
3) 若以上两项都没有文件名, 则为当前窗口的文件名。
3. Link EXE file:把当前.OBJ文件及库文件连接在一起生成.EXE文件。
4. Build all:重新编译项目里的所有文件, 并进行装配生成.EXE文件。该命令不作过时检查 (上面的几条命令要作过时检查, 即如果目前项目里源文件的日期和时间与目标文件相同或更早, 则拒绝对源文件进行编译)。
5. Primary C file:当在该项中指定了主文件后, 在以后的编译中, 如没有项目文件名则编译此项中规定的主C文件, 如果编译中有错误, 则将此文件调入编辑窗口, 不管目前窗口 中是不是主C文件。
6. Get info:获得有关当前路径、源文件名、源文件字节大小、编译中的错误数目、可用空间等信息,如图:
1.13.7 Project菜单
‘玖’ 如何更改ubuntu中交叉编译工具链
1.下载arm-linux-gcc-3.4.1.tar.bz2到任意的目录下,我把它下载到了我的个人文件夹里 /home/wrq
2. 解压 arm-linux-gcc-3.4.1.tar.bz2
#tar -jxvf arm-linux-gcc-3.4.1.tar.bz2
解压过程需要一段时间,解压后的文件形成了 usr/local/ 文件夹,进入该文件夹,将arm文件夹拷贝到/usr/local/下
# cd usr/local/
#cp -rv arm /usr/local/
现在交叉编译程序集都在/usr/local/arm/3.4.1/bin下面了
3. 修改环境变量,把交叉编译器的路径加入到PATH。(有三种方法,强烈推荐使用方法一)
方法一:修改/etc/bash.bashrc文件
#vim /etc/bash.bashrc
在最后加上:
export PATH=$PATH:/usr/local/arm/3.4.1/bin
export PATH
方法二:修改/etc/profile文件:
# vim /etc/profile
增加路径设置,在末尾添加如下,保存/etc/profil文件:
export PATH=$PATH:/usr/local/arm/3.4.1/bin
4. 立即使新的环境变量生效,不用重启电脑:
对应方法一:#source /root/.bashrc
对应方法二:# source /etc/profile
5. 检查是否将路径加入到PATH:
# echo $PATH
显示的内容中有/usr/local/arm/bin,说明已经将交叉编译器的路径加入PATH。至此,交
叉编译环境安装完成。
6. 测试是否安装成功
# arm-linux-gcc -v
上面的命令会显示arm-linux-gcc信息和版本,显示的信息:
Reading specs from /usr/local/arm/3.4.1/lib/gcc/arm-linux/3.4.1/specs Configured with: /work/crosstool-0.27/build/arm-linux/gcc-3.4.1-glibc-2.3.2/gcc-
3.4.1/configure --target=arm-linux --host=i686-host_pc-linux-gnu
--prefix=/usr/local/arm/3.4.1 --with-headers=/usr/local/arm/3.4.1/arm
-linux/include --with-local-prefix=/usr/local/arm/3.4.1/arm-linux --disable
-nls --enable-threads=posix --enable-symvers=gnu --enable-__cxa_atexit --enable-
languages=c,c++ --enable-shared --enable-c99 --enable-long-long
Thread model: posix
gcc version 3.4.1
7.编译
Hello World程序,测试交叉工具链
写下下面的Hello World程序,保存为
hello.c
#include
int main()
{
printf("Hello World!\n");
return 0;
}
执行下面的命令:
# arm-linux-gcc -o hello hello.c
源程序有错误的话会有提示,没有任何提示的话,就是通过了,就可以下载到ARM目标板上运行了!接着可以输入file hello的命令,查看生成的hello文件的类型,要注意的是生成的可执行文件只能在ARM体系下运行,不能在其于X86的PC机上运行。
‘拾’ 如何更改ubuntu中交叉编译工具链
更改ubuntu中交叉编译工具链的操作步骤如下:
1. 下载软件包
从linaro的网站下载预编译二进制包,地址:https://launchpad.net/linaro-toolchain-binaries/trunk/2013.10。
注意选择的版本,要使用linux下的哦。选择这个:gcc-linaro-arm-linux-gnueabihf-4.8-2013.10_linux.tar.bz2
2. 解压
解压gcc-linaro-arm-linux-gnueabihf-4.8-2013.10_linux.tar.xz到 ~/arm-cross-toolchain/目录下
3. 设置环境变量
~$ vi .bashrc
在最后添加如下 2 行:
PATH=$PATH:/home/lxl/arm-cross-toolchain/gcc-linaro-arm-linux-gnueabihf-4.8-2013.10_linux/bin
export PATH
请注意,第一行的$PATH后面是英文冒号,而冒号后面是你的cross-toolchain的可执行文件目录(bin目录)的绝对路径。这两句的意思就是将cross-toolchain的可执行文件路径加入系统环境变量PATH中。
4. 使环境变量 生效
~$ source .bashrc
5. 测试