使用crosstool构建arm交叉编译链遇到的问题汇总
来源:互联网 发布:arctime字幕软件下载 编辑:程序博客网 时间:2024/06/07 03:55
下载制作交叉编译的工具: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.需要重新制作编译器。
- 使用crosstool构建arm交叉编译链遇到的问题汇总
- 使用crosstool-0.43构建arm交叉编译工具链
- crosstool制作arm-linux交叉编译工具链遇到的问题
- 构建ARM Linux交叉编译工具链--Crosstool
- 构建ARM Linux交叉编译工具链--Crosstool
- 构建ARM Linux交叉编译工具链--Crosstool
- 使用crosstool 制作arm-linux交叉编译链4.1.0
- 使用crosstool 制作arm-linux交叉编译链
- 2.使用crosstool制作ARM-Linux交叉编译工具链
- 使用crosstool制作ARM交叉编译工具链
- 用crosstool-ng构建自己的交叉编译工具链
- 使用crosstool-ng构建交叉工具链
- 使用crosstool遇到的问题
- 在linux下使用crosstool制作自己的arm交叉编译环境
- 在linux下使用crosstool-0.43制作自己的arm交叉编译环境 (转)
- 在LINUX下使用CROSSTOOL-0.43制作自己的ARM交叉编译环境
- crosstool制作arm-linux交叉编译工具链
- crosstool制作arm-linux交叉编译工具链
- Linux环境进程间通信(二): 信号(上)
- C#如何为winform程序打包发布应用(图解)
- Ubuntu中查看和结束进程
- awk 多文件处理
- WINDOWS 启动项修改工具,提高启动速度
- 使用crosstool构建arm交叉编译链遇到的问题汇总
- c++ 全局变量的内存分配问题
- ubuntu下eclipse的tomacat配置
- Linux环境进程间通信(二): 信号(下)
- Linux环境进程间通信(三)消息队列
- asp.net制作无刷新五角星评分工具
- Linux环境进程间通信(四)信号灯
- Linux环境进程间通信(五): 共享内存(上)
- Linux环境进程间通信(五): 共享内存(下)