archlinux安装交叉编译工具链
1. 在/usr/local下新建文件夹:arm
[guo@archlinux local]$sudo mkdir arm
2. 将交叉编译工具拷贝到arm文件夹中
[guo@archlinux arm]$sudo mv ~/Downloads/arm-2011.03-41-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 .
[guo@archlinux arm]$ ls
arm-2011.03-41-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
3. 解压
[guo@archlinux arm]$ sudo tar -xjvf arm-2011.03-41-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
[guo@archlinux arm]$ ls
arm-2011.03 arm-2011.03-41-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
4. 添加到PATH环境变量
[guo@archlinux arm]$ sudo gedit ~/.bashrc
在文件的最后写入以下内容:
PATH=$PATH:/usr/local/arm/arm-2011.03/bin
5. 运行.bashrc文件,使设置生效。
进入用户主目录:
[guo@archlinux arm]$ cd
运行:
[guo@archlinux ~]$ . .bashrc
6. 验证交叉编译器是否安装正确
输入[guo@archlinux ~]$ arm-none-linux-gnueabi-后,按2下TAB键,如果能够看到很多
arm-none-linux-gnueabi-前缀的命令,基本可以确定安装成功。
arm-none-linux-gnueabi-addr2line arm-none-linux-gnueabi-gdbtui
arm-none-linux-gnueabi-ar arm-none-linux-gnueabi-gprof
arm-none-linux-gnueabi-as arm-none-linux-gnueabi-ld
arm-none-linux-gnueabi-c++ arm-none-linux-gnueabi-nm
arm-none-linux-gnueabi-c++filt arm-none-linux-gnueabi-objcopy
arm-none-linux-gnueabi-cpp arm-none-linux-gnueabi-objdump
arm-none-linux-gnueabi-elfedit arm-none-linux-gnueabi-ranlib
arm-none-linux-gnueabi-g++ arm-none-linux-gnueabi-readelf
arm-none-linux-gnueabi-gcc arm-none-linux-gnueabi-size
arm-none-linux-gnueabi-gcc-4.5.2 arm-none-linux-gnueabi-sprite
arm-none-linux-gnueabi-gcov arm-none-linux-gnueabi-strings
arm-none-linux-gnueabi-gdb arm-none-linux-gnueabi-strip
7. 让64位的系统能够运行和编译32位程序。
[guo@archlinux ~]$ arm-none-linux-gnueabi-gcc -v
如果不成功,那就有可能需要安装32位运行库。
http://blog.csdn.net/qq_15345805/article/details/70864136
https://wiki.archlinux.org/index.php/Multilib
编辑 /etc/pacman.conf,取消下面内容的注释:
[multilib]
Include = /etc/pacman.d/mirrorlist
[guo@archlinux ~]$ sudo nano /etc/pacman.conf
[sudo] password for guo:
[guo@archlinux ~]$
更新软件包列表并升级系统
[guo@archlinux ~]$ sudo pacman -Syu
如果不管用,用命令安装32位运行库
[guo@archlinux ~]$ sudo pacman -S lib32-glibc
8. 测试工具链
编写程序文件hello.c,输入以下内容:
#include <stdio.h>
int main()
{
printf("hello world!\n");
return 0;
}
[guo@archlinux ~]$ cd /tmp
[guo@archlinux tmp]$ nano hello.c
[guo@archlinux tmp]$ cat hello.c
#include <stdio.h>
int main()
{
printf("hello world!\n");
return 0;
}
[guo@archlinux tmp]$
通过以下命令进行编译,编译后生成名为hello的可执行文件,通过file命令可以查看文件的类型。
当显示以下信息时表明交叉工具链正常安装了,通过编译生成了ARM体系可执行的文件。
注意,通过该交叉编译链编译的可执行文件只能在ARM体系下执行,不能在基于X86的普通PC上执行。
[guo@archlinux tmp]$ arm-none-linux-gnueabi-gcc hello.c -o hello
[guo@archlinux tmp]$ ls
fcitx-socket-:0 hello.c sogou-qimpanel-cellguo
hello serverauth.xlA5PX22fa sogou-qimpanel:0.pid
[guo@archlinux tmp]$ file hello
hello: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.3, for GNU/Linux 2.6.16, not stripped
更详细内容参考以下博客:
交叉编译工具链(GCC)建立 -- 写的非常棒(两篇写的非常相似)
http://blog.chinaunix.net/uid-7762106-id-146774.html
http://blog.chinaunix.net/uid-8107907-id-2034159.html
交叉编译工具链 -- 主要是介绍
http://blog.csdn.net/qfnu08zzr/article/details/48264331
交叉编译详解
https://www.crifan.com/files/doc/docbook/cross_compile/release/html/cross_compile.html
archlinux安装交叉编译工具链的更多相关文章
- Linux 安装交叉编译工具链
交叉编译工具链下载地址: 链接:http://pan.baidu.com/s/1dE7P9rb 密码:300i 声明:下面每一步中的“pwd”指令都是为了看清楚当前的目录,没有其他实际意义. 系统:u ...
- 64位ubuntu安装交叉编译工具链,显示找不到命令
是因为Ubuntu64位版本已不支持ia32-libs的软件包,而是使用了lib32ncurses5.lib32z1软件包做为替代, 所以在Ubuntu16.04版本当中应该安装执行: sudo ap ...
- ubuntu安装交叉编译工具链
一.sudo su 切换到root用户权限 二.将arm-linux-gcc-4.3.2.tgz从windows拷贝到Linux /home/ttt/arm-linux-gcc-4.3.2.tgz ...
- ubuntu下安装交叉编译工具链
/usr/localmkdir arm 将文件file1复制成文件file2 cp file1 file2 /cp /mnt/hgfs/UbuntuGX/arm-2008q3-linux.tar.gz ...
- 64位的ubuntu14.04 LTS安装 Linux交叉编译工具链及32位“ia32-libs”依赖库
ubuntu又迎来了其新一代的长期支持版本 14.04 LTS,其带来了许多令人期待的新特新,遂决定进行升级. 装好了64位版本及安装 Linux交叉编译工具链 运行GCC,${CROSS_COMPI ...
- hisiv100交叉编译工具链安装
hisi交叉编译工具链安装 一. 摘要: 交叉编译简单的说,就是A机器上编译生成,运行在B机器上.那么在A机器上的编译工具安装,就是本文所要描述的内容. 工欲善其事必先利其器,所以交叉 ...
- CROSSTOOL-NG建立交叉编译工具链
CROSSTOOL-NG建立交叉编译工具链 因为考试和学习的原因我已经一段时间没有玩我的JZ2440,现在终于考完试了,我再次找出了我的JZ2440.我之前学习的时候使用的是韦东山老师提供的开发工具, ...
- Crosstool-ng制作交叉编译工具链
Crosstool-ng制作交叉编译工具链 交叉编译器可以用现成的,比如CodeSourcery制作的交叉编译器,也可以自己制作,一般是用kernel+gcc+glibc+binutils的源码包来编 ...
- Ubuntu16.04下的2009q3交叉编译工具链的搭建
环境搭建: 1.下载arm-2009q3.tar.bz2源码. 百度云链接 密码: rbui 2.将arm-2009q3.tar.bz2拷贝到/usr/local/arm(没有该目录就 ...
随机推荐
- Luogu 4069 [SDOI2016]游戏
BZOJ 4515 树链剖分 + 李超线段树 要求支持区间插入一条线段,然后查询一个区间内的最小值.可以使用李超线段树解决,因为要维护一个区间内的最小值,所以每一个结点再维护一个$res$表示这个区间 ...
- jqgrid扩展 获取表单数据
$.fn.GetPostData = function () { var data = {}; var k = false; $(this).find(".datacontrol" ...
- ubuntu扩展屏幕
1.了解设置的名称 直接运行xrandr(不带任何参数)就可以显示出当前的显示设备及设备的模式. xdj@xdj-Presario-CQ42-Notebook-PC:~$ xrandr Screen ...
- sql修改排序规则,区分大小
alter database 数据库 COLLATE Chinese_PRC_CS_AS 修改排序规则,改成大小写敏感的排序规则 如果只修改一个表,用alter t ...
- 十进制--->二进制(利用C++栈功能)
原创 十进制转二进制很简单,其中用到C++的栈功能就能更加方便! stack<int> s; //栈的定义,s已经被定义为一个栈 s.push(); //将20入栈 s.push(); s ...
- ASP.NET伪静态配置
一.下载URLRewriter.dll 二.在项目中添加URLRewrite的引用 三.配置webconfig 1.在<configuration>节点中添加: <configSec ...
- DFT到FFT的理解
DFT简化计算理解(FFT) DFT: WN=e^(-j*2*pi/N) DFT复杂度o(N^2) 降低与N^2的依赖 使N = LM (L^2+m^2 <= N^2) N点DFT分解为M ...
- 第七篇 Python面向对象
类是对一群具有相同特征或者行为的事物的一个统称,是抽象的,不能直接使用,特征被称为属性,行为被称为方法,类就相当于制造飞机时的图纸,是一个模板,是负责创建对象的. 对象是由类创建出来的一个具体存在,可 ...
- Linux环境下jdk、tomcat、redis安装及配置
环境说明: linux : centOS jdk : 1.8 tomcat : 8.5 redis : 4.0 jdk安装配置 1.下载jdk(这里下载的是jdk-8u181-linux-x64.ta ...
- HDU6318-2018ACM暑假多校联合训练2-1010-Swaps and Inversions-树状数组
本题题意是,给你一个长度为n的序列,使用最少的操作把序列转换为从小到大的顺序,并输出操作数*min(x,y) 实质上是算出该序列中有多少逆序对,有归并排序和树状数组两种算法,由于数据之间的差值有点大, ...