使用crosstool构建arm交叉编译链遇到的问题汇总
2012-04-22 02:01
417 查看
下载制作交叉编译的工具: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. 于是我们需要重新编译安装一个老版本的binutils, 2.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.18:http://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.需要重新制作编译器。
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. 于是我们需要重新编译安装一个老版本的binutils, 2.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.18:http://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.需要重新制作编译器。
相关文章推荐
- 使用crosstool_NG制作arm-linux交叉编译链
- 使用crosstool-0.43构建arm交叉编译工具链
- 使用crosstool 制作arm-linux交叉编译链4.1.0
- 使用gradle来构建Spring boot时遇到的问题
- 用crosstool-ng构建交叉工具编译链
- 安装配置和使用hue遇到的问题汇总
- 在eclipse使用maven构建web项目遇到的问题
- Arm下使用Qt和Opencv进行图像处理的入门例程和遇到的问题
- Android使用Gradle构建的一些遇到的问题
- 视频监控(B/S模式下)CGI和BOA使用期间遇到的问题汇总
- 使用Google Map API可能会遇到的问题汇总
- Linux下的CGI和BOA使用期间遇到的问题汇总
- 构建arm-linux-gnueabi-gcc-4.6.3交叉编译链
- idea使用maven构建mybatis程序遇到的几个问题
- 使用docker selenium 构建web自动化分布式测试环境时,遇到的一些问题
- 【汇总】iOS开发及Xcode使用中遇到的一些报错问题汇总
- Android 开发使用Android studio 遇到的问题汇总
- 一些在开发中关于Maven使用时遇到的问题的汇总
- 使用MongoDB C Driver时遇到的问题解决汇总
- 2.使用crosstool制作ARM-Linux交叉编译工具链