交叉编译器及常见编译错误

转载 2013年12月04日 12:07:28

(1)交叉编译器

      在主机上用来编译其它类型机器上可执行代码的编译器就叫交叉编译器,我们进行嵌入式linux的开发主机大部分都是X86,而我们的嵌入式系统的处理器有可能是ARM/MIPS等非X86处理器,这时候就必须使用ARM/MIPS的交叉编译器才能编译出在这些处理器上能够执行的代码。这里我们使用的是ARM最新的EABI编译器。

      交叉编译器在编译的时候,对于浮点运行会预设硬浮点运算FPA(float point architecture),而没有FPA的CPU,比如三星的2440等,会使用FPE(float point emulation即软浮点),这样在速度上就会受到极大限制。使用EABI(embeded application binary interface)则可以对此改善处理。

(2)不修改MAKEFILE来建立编译环境

      将arm-2008q3.tar.bz2拷贝到ubuntu系统的某个目录,解压后比如目录是//192.168.254.128/share/LZD/arm-2008q3。使用VI编辑/etc/bash.bashrc,在文件最后加入环境变量设置(注:加bin的含义是交叉编译器工具目录):

PATH=/home/zhangcheng/share/LZD/arm-2008q3/bin:$PATH
export PATH  

      保存后,用source运行一次该文件,就可以了。

(3)gcc: error trying to exec 'cc1': execvp: No such file or directory 的解决

      今天在编译开发板环境时,明明设置好编译器的环境变量了,编译时就是会出现:gcc: error trying to exec 'cc1': execvp: No such file or directory 错误提示。后来发现一个方法可以解决,输入:whereis gcc,就可以了发现好几个gcc,包括/usr/bin/gcc,所以我就把PATH路径设过去,就OK了。

PATH=/usr/bin/gcc:/home/zhangcheng/share/LZD/arm-2008q3/bin:$PATH
export PATH  

(4)Clock skew detected. Your build may be incomplete 

如果你装了Windows Linux双系统,系统时间很可能出问题,从而造成文件修改时间比系统时间晚,两种办法:
1,应该是你的PC的系统时钟错误,在BIOS中修改正确。
2,使用touch命令将所有文件的时间戳修改为你系统的当前时间。解决方法:find ./-name "*" -exec touch {} \;

参考文章:http://hi.baidu.com/xdyang1986/blog/item/cfbfb3cad7606212be09e6cf.html

参考原文:http://blog.163.com/sinomice@126/blog/static/130557593200992181616726/

Opencv的交叉编译错误的修改

第一次写博客,别喷。

ARM-Linux-gcc4.3.2交叉编译错误问题

本博文针对arm-linux-gcc4.3.2版本的交叉编译工具出现的常见错误,进行了整理,总结。开发环境: ARM9 (JZ2440开发板) 开放平台: Ubuntu14.04 交叉编译工具: ...

最常见的20种VC++编译错误信息

  • 2009年06月11日 20:54
  • 31KB
  • 下载

常见c语言编译错误解析

C语言编译错误信息及说明 1、 在函数 ‘transform’ 中:7: 错误:expected ‘;’ before ‘{’ token     解释:‘{’之前的某个语句缺少分号‘;’...

常见ARM编译错误

  • 2014年08月24日 10:14
  • 85KB
  • 下载

常见的一些编译错误信息及说明

Java编译错误信息及说明 1、java:33:不是语句     解释:程序中出现了没有任何意义的字符(串),可能是无意中打出了没有任何意义的字符;   2、java:34:需要 ';'  ...

最常见的20种VC++编译错误信息

  • 2009年11月11日 13:38
  • 24KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:交叉编译器及常见编译错误
举报原因:
原因补充:

(最多只允许输入30个字)