中易网

arm-none-linux-gnueabi交叉工具链与arm-linux-gcc 有区别吗

答案:2  悬赏:10  
解决时间 2021-02-07 18:03
arm-none-linux-gnueabi交叉工具链与arm-linux-gcc 有区别吗
最佳答案
arm-none-linux-gnueabi-gcc 只是告诉你支持eabi的功能,你当然也可以把这个名字改成arm-linux-gcc执行了,但是arm-linux-gcc的话是不可以直接改成arm-none-linux-gnueabi-gcc的,因为我们不知道arm-linux-gcc是什么形式的。 现在的arm linux to...
全部回答
eabi标准的要好些,可能arm-linux-gcc就是arm-none-linux-gnueabi的一个链接 终于,郁闷已久的问题攻破了,用了三种配置交叉编译的方法,最终在开发板上实现成功了,现在想一想,有的时候真的也是运气。 之前已经试验过使用arm-linux-gcc-3.4.1配置交叉编译编译环境,配置成功了,在开发板上失败了~ 后来使用脚本创建交叉编译环境(crosstool-0.43),配置成功了(这个用了相当长的时间),在开发板上失败了~ 终于,在一个偶然的机会(其实是浏览无数网页后),我终于找到了一个好的方法,并成功在开发板上运行。先说一下网上的一些方法,有些所谓的默认安装了一些程序,但是在实际运行时发现根本没有安装,而且很多地方不知道该如何安装。再有就是文章一上来就说安装什么什么软件,但是在网上搜根本找不到。只能说很多人只转载文章,根本没有试验过。但是我还是幸运的找到了一个靠谱的文章http://www.adamjiang.com/pukiwiki/index.php?%e7%bc%96%e8%af%91mini2440%e5%b7%a5%e5%85%b7%e9%93%be 根据上面的做法,我成功了,在此小做总结。 首先下载工具链,幸好这篇文章给出了这个网站,要不还不知道要找多久。 http://www.codesourcery.com/.../arm-2008q3-72-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 70多m很快就下完了,若不是root用户下,可以将文件解压到home的某个目录下。 tar xjvfo arm-2008q3-72-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 -c /home/..../arm 那么,在这个目录下会生成一个arm-2008q3文件夹。 更改路径不用说了,或者临时或者非临时。我就直接改~/.bashrc了,在最后加: export path=/usr/local/arm-2008q3/bin:${path} ok~现在使你路径生效吧: source ~/.bashrc 再输入:export cross_compile=arm-none-linux-gnueabi- 作用是:当你编译软件的时候,makefile在大多数情况向会取得cross_compile所指定的交叉编译工具。 也可以输入:export cross_compile=/usr/local/arm-2008q3/bin/arm-none-linux-gnueabi- 这种种方法是通过绝对路径来指定交叉编译工具,这样做可以更精确的为交叉编译定位,同时可以避免很多错误。你可以通过下面这样的例子指定交叉编译工具的绝对路径。 现在一切就绪,随便编译个hello world.c文件,用arm-none-linux-gnueabi-gcc helloworld.c -o helloworld,生成的helloworld文件通过nfs挂载到板子上。 最最后,在minicom下输入:./helloworld。 就会显示你希望见到的输出了。。。。。。 首先,从下面的地址下载工具链 http://www.codesourcery.com/.../arm-2008q3-72-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 等待下载完成后,将工具链解压到/usr/local/目录,如果你没有编译主机上的root权限的话,你可以将工具链解压到linux用户的home目录中的某个位置(比如${home}/bin) tar xjvfo arm-2008q3-72-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 -c /usr/local 这个操作将会在/usr/local目录中创建一个么名为arm-2008q3的目录。 接下来,你需要将这个新进添加的工具链的位置添加到path变量之中。编译你的~/.bashrc文件,在其中加入新的path变量 export path=/usr/local/arm-2008q3/bin:${path} 使用source命令在当前shell中启用这个变化,这样你就不需要重新登入系统使用新变量了。 source ~/.bashrc 或者直接在shell中使用export对当前shell做同样的操作。 export path=/usr/local/arm-2008q3/bin:${path} 如果你并不是bash用户,你可以修改你使用的shell所对应的环境设置文件,比如,对于zsh来说,您应该修改~/.zsh文件。或者,你需要在每次登入shell后首先运行上面的export操作。 因为在开发主机上进行交叉编译意味着使用开发主机的能力生成另外一个体系结构上运行的二进制代码,所以,一般来说,你需要编译的软件通常都会接受一个叫做cross_compile的变量来指定产生哪个体系结构的代码。所以,配置工具链的最后一个步骤就是设置这个变量。如果你现在使用ls命令查看以下 ls /usr/local/arm-2008q3/bin/ 目录的话,你会看到很多以arm-none-linux-gnueabi-开始的可执行文件,而这个共同的前缀就是你需要的cross_compile变量。现在,使用export命令设置环境变量 export cross_compile=arm-none-linux-gnueabi- 现在,当你编译软件的时候,makefile在大多数情况向会取得cross_compile所指定的交叉编译工具。当然,前提是,这些交叉编译工具在你的path变量上。还有一种方法是通过绝对路径来指定交叉编译工具,这样做可以更精确的为交叉编译定位,同时可以避免很多错误。你可以通过下面这样的例子指定交叉编译工具的绝对路径。 export cross_compile=/usr/local/arm-2008q3/bin/arm-none-linux-gnueabi- 在大多数情况下,你并不需要将上面的export命令加入~/.bashrc这样的文件,因为,你并不总是需要它们来做交叉编译。比如,你仅仅希望编译运行在开发主机上的程序时。 这样,工具链就准备好了。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
上海浦东川沙哪里有卖数控刀具?我买这样刀粒
求大神告知欲求王哪里能免费看
叫僚怎么去啊,有知道地址的么
从长沙南站坐大巴到东莞市要多久?
高分求上市公司盈利能力分析论文的绪论及结论
Dell电脑重装win7系统在之后开机变慢怎么办求
日佳在哪里啊,我有事要去这个地方
女17经期后同房过了15天小肚子疼乳房一摸也疼
思念家乡,思念亲人的优美文章!
谷里在哪里建省中医院分院
转卖戴尔外星人M17x r4,多少钱合适?
1/1998+2/1998+……+1997/1998=???多少
如何重置小米手环2
如何评价鲍勃迪伦获得2016年诺贝尔文学奖
一首几个男生唱的英文歌有弹吉他的,结尾几个
推荐资讯
梦见一只黑色母鸡带着一群小鸡围着我
安丘市建陶市场在哪里啊,我有事要去这个地方
本科会计专业用不用考从业资格证
从减水剂方面解决砼滞后泌水的问题.
冬季吃红豆面包对人体好处和坏处
幸福街文华学校站自行车租赁点怎么去啊,有知
[独立宣言]是在哪里签署???
在校本科生可以跟公司签订劳动合同吗?
你还能说出哪些描述我国古代赋税制度的诗句
豪锦宾馆地址有知道的么?有点事想过去
福霖餐厅地址在哪,我要去那里办事
SSD 4k-6k随机速度 怎么这么慢
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?