ubuntu16.04安装交叉编译链
我使用的是arm-linux-gcc 4.3.2版本,其他版本类似,附上下载链接: https://pan.baidu.com/s/1geUOfab 密码: frzy
首先我的安装包是tar.bz2的,使用命令:
tar jxvf FileName.tar.bz2
附上常用文件格式的压缩和解压命令:
.tar
解包:tar xvf FileName.tar
打包:tar cvf FileName.tar DirName
(注:tar是打包,不是压缩!)
———————————————
.gz
解压1:gunzip FileName.gz
解压2:gzip -d FileName.gz
压缩:gzip FileName
.tar.gz 和 .tgz
解压:tar zxvf FileName.tar.gz
压缩:tar zcvf FileName.tar.gz DirName
———————————————
.bz2
解压1:bzip2 -d FileName.bz2
解压2:bunzip2 FileName.bz2
压缩: bzip2 -z FileName
.tar.bz2
解压:tar jxvf FileName.tar.bz2
压缩:tar jcvf FileName.tar.bz2 DirName
———————————————
.bz
解压1:bzip2 -d FileName.bz
解压2:bunzip2 FileName.bz
压缩:未知
.tar.bz
解压:tar jxvf FileName.tar.bz
压缩:未知
———————————————
.Z
解压:uncompress FileName.Z
压缩:compress FileName
.tar.Z
解压:tar Zxvf FileName.tar.Z
压缩:tar Zcvf FileName.tar.Z DirName
———————————————
.zip
解压:unzip FileName.zip
压缩:zip FileName.zip DirName
———————————————
.rar
解压:rar x FileName.rar
压缩:rar a FileName.rar DirName
解压后可以将解压的文件夹移动到指定目录(可以不移动)
使用命令:mv arm /usr/
其中arm是待移动的文件夹地址,/usr/是目标文件夹;
移动完成后开始配置环境变量:
Ubuntu不同目录下profile与bashrc的区别
/etc/profile 此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行,并从/etc/profile.d目录的配置文件中搜集shell的设置。
/etc/bash.bashrc 为每一个运行bash shell的用户执行此文件,当bash shell被打开时,该文件被读取。
~/.bash_profile 每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次,默认情况下,他设置一些环境变量,执行用户的.bashrc文件。
~/.bashrc 该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该文件被读取。
~/.bash_logout 当每次退出系统(退出bash shell)时,执行该文件。
另外,/etc/profile中设定的变量(全局)的可以作用于任何用户,而~/.bashrc等中设定的变量(局部)只能继承/etc/profile中的变量,他们是”父子”关系。
~/.bash_profile 是交互式、login 方式进入 bash 运行的。
~/.bashrc 是交互式 non-login 方式进入 bash 运行的。
通常二者设置大致相同,所以通常前者会调用后者。
我们可以任选一个文件进行配置即可。
这里我使用profile文件进行配置
使用命令:
sudo vi /etc/profile
打开文件,在最后插入你要配置的文件夹路径,
export PATH=$PATH:/usr/arm/4.3.2/bin
/usr/arm/4.3.2/bin
是我交叉编译链所在的位置,上面移动的,根据自己的情况来设置;
配置完成后,使交叉编译链生效;
profile文件生效方法有两种:
方法1:
让/etc/profile文件修改后立即生效 ,可以使用如下命令:
# . /etc/profile
注意: . 和 /etc/profile 有空格
方法2:
让/etc/profile文件修改后立即生效 ,可以使用如下命令:
arm-linux-gcc -v
生效后我们就可以查看是否安装成功,使用命令:
arm-linux-gcc -v
查看arm-linux-gcc版本,如果正常显示,说明安装成功;输入命令却出现 “没有那个文件或目录”
原因是交叉编译器一般是32位的,而64位系统缺少一些32位库的支持,所以需要安装32位库。
解决方法:
sudo apt-get install lib32ncurses5 lib32z1
待完成后重新输入arm-linux-gcc -v即可发现已经安装完成
然后,我们编辑一个c程序进行测试,
编译一个test.c文件
#include<stdio.h>
int main()
{
printf("hello world!\n");
}
使用命令:arm-linux-gcc test.c -o test 看是否编译成功
我们可以看见,已经生成了可执行文件test,交叉编译链安装到此完成