使用crosstool遇到的问题

下载制作交叉编译的工具:wget  http://www.kegel.com/crosstool/crosstool-0.43.tar.gz

1、通过终端安装程序sudo apt-get install ***时出错:
E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable)
E: Unable to lock the administration directory (/var/lib/dpkg/), is another process using it?

   出现这个问题可能是有另外一个程序正在运行,导致资源被锁不可用。而导致资源被锁的原因可能是上次运行安装或更新时没有正常完成,解决的办法其实很简单:
在终端中敲入以下两句
sudo rm /var/cache/apt/archives/lock 
sudo rm /var/lib/dpkg/lock

 

2、制作交叉编译工具链时发生的错误

(1)、以root用户执行./demo-arm-softfloat.sh,会发生以下错误。必须以普通用户执行。

+ case x$PREFIX in

+ case x$USER in

+ abort 'Don'\''t run all.sh or crosstool.sh as root, it'\''s dangerous'

+ echo 'Don'\''t' run all.sh or crosstool.sh as root, 'it'\''s' dangerous

Don't run all.sh or crosstool.sh as root, it's dangerous

+ exec false

  (2)、以普通用户执行./demo-arm-softfloat.sh时,过程中会发生权限限制问题sudo mkdir代替。创建的目录或文件必须可读可写.

  (3). Upatch gcc-3.4.5.tar.gz时出错的问题

bzip2(stdin) is not a bzip2 file
tar:child returned status

      重新下载成gcc-3.4.5.tar.gz后解决。

  (4)、编译过程中出现如下问题:

configure: error:

*** These critical programs are missing or too old: as ld

*** Check the INSTALL file for required versions.

出现这种情况是因为Ubuntu默认所安装的binutils版本为binutils-2.20,当binutils太新的时候,crosstool只好将它当成太老的版本,报告说too old; as ld. 于是我们需要重新编译安装一个老版本的binutils2.19或者2.18都可以被crosstool所识别,这里拿binutils-2.18举例。但还有一个问题,Ubuntu10.04默认安装的gcc版本是gcc-4.4.3,跟binutils-2.20一样,太高版本的gcc对语法要求更为严格,这样会导致binutils-2.18无法轻松的编译通过,于是我们需要编译安装一个老版本的gcc 4.1的版本可以编译成功binutils-2.18.

解决办法:

下载binutils-2.18http://ftp.gnu.org/gnu/binutils/ 

tar xvfj binutils-2.18

./configure --prefix=/home/david/share/tmp/binutils --disable-nls 

//一定要进到binutils2.8目录下执行这行命令。

//--prefix后面的是生成可执行文件存放的位置可以自己定义

Make all

      Make install      //如果这句不行,在执行这句前先make一下。

      cd /usr/bin

sudo rm as ld

sudo ln -sf /home/david/share/tmp/binutils/bin/ld ld

sudo ln -sf /home/david/share/tmp/binutils/bin/as as

ld –v   //如果看到版本号是2.18 就说明编译对了。

as –v

 

Binutils-2.18. Binutils 是一组开发工具,包括连接器、汇编器和其他用于目标文件和档案的工具。

(5)VirtualBox 提示虚拟硬盘空间不足( Host system reported disk full.

http://blog.csdn.net/ch_984326013/article/details/6704997

主要因为fat32只支持最大文件为4GB.

如何升级到NTFS:1.单击开始→运行 2.打开窗口以后,在光标的提示符下输入“convert X:/FS:NTFS”,然后回车。注意在“convert”的后面有一个空格。 3.接着系统会要求你输入X盘的卷标,然后回车。(卷标在“我的电脑”中点X盘,然后看它的属性可以找到。)(或者运行,输入cmd,在打开的工具中输入“vol”命令就可以看见c盘的卷标,如果想看其他的盘,例如D盘,则先输入d:,然后在输入vol 即可。)工作界面这样就可简单地转换分区格式为NTFS了。这个方法只用于FAT32转为NTFS,不能将NTFS转为FAT32。

(6)、如下问题:uses hardware FP, whereas u-boot uses software FP

    编译器不支持software FP.需要重新制作编译器

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值