开发PC:Ubuntu16.04.1
开发板:OK6410【飞凌公司出品】
目标:通过GPIO点亮LED
------------------------------------------------------------------------------------------
开发裸机环境之前需要先搭建其开发环境,毕竟工欲善其事必先利其器嘛。 

安装步骤

1、准备工具安装目录

将压缩包arm-linux-gcc-4.4.3.tar.gz存放在一个目录下,这个目录就是你等会解压缩的目录,以后这个目录就不能随便删掉了,我的存放路径是/home/aldrich/arm,如下图,记住这个路径,等会还会用到。

  1. .tar.gz 和.tgz
  2. 解压:tar zxvf FileName.tar.gz
  3. 压缩:tar zcvf FileName.tar.gz DirName
 

2、安装软件

使用tar命令:tar zxvf arm-linux-gcc-4.3.2.tgz将software文件夹下的arm-linux-gcc-4.3.2.tgz解压缩安装到当前目录。通过下图可以看到解压成功了,并且解压后的文件存放在了

  1. /home/aldrich/arm/arm-linux-gcc-4.3.2
 

文件夹下,如下图所示,这个存放路径可得记住,如下图

3、配置系统环境变量

配置环境前先坐下普及:

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 运行的。

通常二者设置大致相同,所以通常前者会调用后者。

接下来配置系统环境变量,把交叉编译工具链的路径添加到环境变量PATH中去,这样就可以在任何目录下使用这些工具。记下上一步中的安装路径,使用命令:vim  /home/aldrich/.bashrc 编辑.bashrc文件,添加环境变量。

在该文件中最后一行添加:

  1. export PATH=$PATH:/home/aldrich/arm/arm-linux-gcc-4.3.2/bin
 

这个路径就是那个bin目录所在的路径,可能你的不一样,按照你实际的目录填就可以了,如下图

编写完保存就好了

4、使环境变量生效

使用命令:source  /home/aldrich/.bashrc 使环境变量生效

5、检查环境变量是否设置成功

在终端上输入命令 arm-linux 再按Tab键,可以看到下图,说明环境变量设置成功了

6、安装32位库兼容包

输入命令后,出现下面的错误提示信息:

  1. /home/aldrich/arm/arm-linux-gcc-4.3.2/bin/arm-linux-gcc:
  2. line 3:
  3. /home/aldrich/arm/arm-linux-gcc-4.3.2/bin/arm-none-linux-gnueabi-gcc:No such file or directory
 

说是出现这种问题的原因是由于Ubuntu16.04用的是64位的,按以前的解决方法就是使用命令:

sudo apt-get install ia32-libs 装一些32位的库

出现上述界面是因为Ubuntu16.04版本已不支持ia32-libs的软件包,而是使用了lib32ncurses5、lib32z1软件包做为替代,所以在Ubuntu16.04版本当中应该安装执行:

  1. sudo apt-get install lib32ncurses5 lib32z1
 

待安装完32位的库之后,再使用命令:arm-linux-gcc -v,这一次就成功了,如下图

8、交叉编译工具验证

编译一个hello.c文件

  1. #include<stdio.h>
  2. int main()
  3. {
  4.     printf("hello world!\n");
  5. }
 

使用命令:arm-linux-gcc hello.c -o hello 看是否编译成功

可见成功生成了二进制文件,至此,交叉编译工具就配置完成了。

 

最新文章

  1. sqlserver事务加锁机制
  2. 微信扫描打开APP下载链接提示代码优化
  3. channel vs mutex
  4. IE8中给HTML标签负值报错问题
  5. String、StringBuffer、StringBuilder源码分析
  6. eclipse 导入web项目后,线程假死
  7. Asp.net Session 保存到MySql中
  8. 编译ffmpeg(iOS)
  9. SignalR介绍与Asp.net,前台即时通信【转】
  10. Javascript中的数组去重-indexof方法
  11. gulp管理静态资源缓存
  12. StringBuffer/StringBuilder总结
  13. jQuery插件开发的五种形态小结(转)
  14. pycharm 的配置
  15. Hive错误:Permission denied: user=anonymous, access=EXECUTE, inode=”/tmp”
  16. HttpWatch Professional Edition 7.2.13下载含( license.lic )
  17. stingray后端开发
  18. ESET Smart Security 免费60天
  19. 手动配置SVN服务
  20. weblogic打补丁,bsu方法

热门文章

  1. 解决Failure to transfer org.apache.maven.plugins:maven-surefire-plugin:pom:2.7
  2. LaTeX:毕设模版设计问题1 各级标题编号设为黑体
  3. Microsoft IIs tilde directory enumeration
  4. Java面试题之继承、组合、聚合有什么区别
  5. hdu 3625 Examining the Rooms 轮换斯特林数
  6. 关于Metadata Client Object Model 的一些操作
  7. Linq技巧4——怎么在.NET 3.5 SP1中伪造一个外键属性
  8. 【CF711C】Coloring Trees(DP)
  9. net1:post,get方式传值,读写cookie,读XML文件,写script语句,跳转页面,response与request类
  10. configure: error: Building GCC requires GMP 4.2+, MPFR 2.4.0+ and MPC 0.8.0+.