在尝试u-boot-1.1.6向mini2440移植的过程中,遇到下面的编译问题:
opt/FriendlyARM/toolschain/4.4.3/bin/.arm-none-linux-gnueabi-ld: cannot find -lc
打开u-boot-1.1.6根目录下的Makefile,发现:第218行
PLATFORM_LIBS += -L $(shell dirname `$(CC) $(CFLAGS) -print-libgcc-file-name`) -lgcc -lc -L/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/usr/lib
这一行是有问题的
检查一下arm-linux-gcc的目录,发现arm-none-linux-gnueabi目录下并没有libc这样的目录,因此推断问题是arm-linux-gcc带来的,将arm-linux-gcc换成4.3.2版本,检查libc目录存在,库文件完整后,重新调整环境变量,问题解决。
以下是Arm-linux-gcc-4.3.2安装步骤
下载arm-linux-gcc-4.3.2.tgz(84MB)
安装交叉编译工具链:
1、首先以root用户登入
2、复制arm-linux-gcc-4.3.2.tgz到根目录下tmp文件夹里
3、解压命令tar xvzf arm-linux-gcc-4.3.2 -C /
注意以上命令必须要有-C而且是大写的后边有个空格也要注意
4、配置下编译环境路径 在控制台下输入 gedit /root/.bashrc 等一会出来文本编辑器后在文件最后(最后一行)加上 下面代码
export PATH=/usr/local/arm/4.3.2/bin:$PATH
保存关闭后,注销当前用户, 用root账号重新登录系统(使刚刚添加的环境变量生效)
此时你可以在控制台输入: arm-linux-gcc -v 如果安装成功将会输出 arm-linux-gcc的版本号
若想让它在非超级用户下使用那。首先,以用户登入
1、 输入命令:vi ~/.bashrc编辑.bashrc文件,在文件末尾加入如上面的内容
export PATH=/usr/local/arm/4.3.2/bin:$PATH
2、输入命令:gedit /etc/profile
在文件的末尾加上
PATH=/usr/local/arm/4.3.2/bin:$PATH
保存对profile的修改后,执行source /etc/profile就OK了。
注销当前用户再登录后进入控制台执行arm-linux-gcc -v 看看能否执行成功就可以了
http://spring-studio.net/?p=188