skyilyskyily.blog.chinaunix.net
skyily
全部博文(144)
2010年(16)
2009年(128)
Zane_Yu
tasteswe
zwrvvv
xiao888l
zimuqing
leilelei
Phyllis6
jonathan
denghai1
wbdwbd04
itTangze
lifj1234
18141908
AAABug
分类: LINUX
2009-10-12 17:29:48
使用crosstool-0.43 在Linux环境下构建 MIPS 交叉编译器最初步骤参见前面关于ARM的描述,这里主要解决在构建过程中遇到的错误。编译选择的版本是: gcc-4.0.0-glibc-2.3.2.dat其内容为:BINUTILS_DIR=binutils-2.16.1GCC_DIR=gcc-4.0.0GLIBC_DIR=glibc-2.3.2LINUX_DIR=linux-2.6.15.4LINUX_SANITIZED_HEADER_DIR=linux-libc-headers-2.6.12.0GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.3.2GCC_CORE_DIR=gcc-3.3.6出现的错误:1.编译过程中出现一个问题,说是gcc版本太旧,其实是gcc版本太新了,解决如下:sudo apt-get install gcc-3.4cd /usr/binsudo rm gccln -s gcc-3.4 gcc注意编译完成以后要恢复成原来的版本,如下:cd /usr/binsudo rm gccln -s gcc-4.3 gcc2.Error: operation combines symbols in different segmentsmake[2]: *** [libgcc/./_divdi3.o] Error 1具体解决方式为:在binutils-2.16/gas/config/tc-mips.h最后#endif 前面加上#define UNDEFINED_DIFFERENCE_OK在binutils-2.16/gas/expr.c将#ifdef DIFF_EXPR_OK更换为#if ((defined DIFF_EXPR_OK) || (defined TC_MIPS))这样再编译就正常编译了。 3.出现如:build-glibc/csu/version-info.h:1:1: missing terminating " character系统在编译生成version.o时候发现version-info.h文件有错误,解决方法:解压glibc-2.3.2.tar.bz2找到glibc-2.3.2/csu目录下的Makefile按如下修改文件末尾有2处echoecho"\"Compiled on a $$os $$version system" \ "on`date +%Y-%m-%d`.\\n\"" ;; \改为:echo"\"Compiled on a $$os $$version system" \ "on`date +%Y-%m-%d`.\\\\n\"" ;; \echo"\"Available extensions:\\n\"";改为:echo"\"Available extensions:\\\\n\"" \保存并重新压缩为glibc-2.3.2.tar.bz2 覆盖原来downloads目录下的glibc-2.3.2.tar.bz2,转到crosstool-0.43目录下从新执行。
转自http://blog.163.com/chenglian_999@126/blog/static/76000279200981041846584/
上一篇:谈谈我的观点:如何学好嵌入式系统中的C语言编程
下一篇:sizeof 和 #pragma pack(n)
登录 注册