Chinaunix

标题: 交叉编译问题求教 [打印本页]

作者: xiaoquan9653    时间: 2012-03-17 20:27
标题: 交叉编译问题求教
各位大虾,想请教一个关于交叉编译的问题,望能解答!!
是这样的,我想在PC机上交叉编译一个已经移植好了的gcc编译器(有源码),假定为xxx-gcc(xxx为此这个DSP芯片的名字),我PC机的系统是Ubuntu系统,交叉编译的话,是不是只要编译这个gcc就好了,即cofigure-->make--->make install。
需要按照1. 下载源文件、补丁和建立编译的目录 2. 建立内核头文件 3. 建立二进制工具(binutils) 4. 建立初始编译器(bootstrap gcc) 5. 建立c库(glibc) 6. 建立全套编译器(full gcc)这个步骤来吗?
我暂时只想得到一个可用的gcc,不关心glibc库,二进制工具链等
求教了!!!
作者: EricFisher    时间: 2012-03-18 10:02
一言难尽呢,呵呵。网上搜一下类似的介绍。
作者: xiaoquan9653    时间: 2012-03-18 21:01
在已经有移植了的gcc的源码,直接在linux平台(安装有gcc)上编译就可以了吗?跟glibc和工具链有关系吗?我觉得是没关系,但不能确定。
我的命令行是这样的:

% ../gcc-3.3/configure --prefix=/usr/local/gcc-3.3 --target=XXX-linux --enable-threads=posix --disable-checking --disable-multilib --enable-languages=c --with-gmp=/usr/local/gmp-5.0.4 --with-mpfr=/usr/local/mpfr-3.1.0 --with-mpc=/usr/local/mpc-0
请问是否正确的,但是make时会有错误:
/home/shaw/Tool/build-tools/build-gcc-XXX/gcc/gengtype-yacc.y:162: undefined reference to `lexer_line'
/home/shaw/Tool/build-tools/build-gcc-XXX/gcc/gengtype-yacc.y:173: undefined reference to `lexer_line'
/home/shaw/Tool/build-tools/build-gcc-XXX/gcc/gengtype-yacc.y:173: undefined reference to `lexer_line'
/home/shaw/Tool/build-tools/build-gcc-XXX/gcc/gengtype-yacc.y:119: undefined reference to `lexer_line'
gengtype-yacc.o:/home/shaw/Tool/build-tools/build-gcc-XXX/gcc/gengtype-yacc.y:228: more undefined references to `lexer_line' follow
gengtype-yacc.o: In function `yyparse':
/home/shaw/Tool/build-tools/build-gcc-XXX/gcc/gengtype-yacc.y:81: undefined reference to `lexer_toplevel_done'
/home/shaw/Tool/build-tools/build-gcc-XXX/gcc/gengtype-yacc.y:107: undefined reference to `lexer_toplevel_done'
collect2: ld returned 1 exit status
make[1]: *** [gengtype] Error 1
make[1]: Leaving directory `/home/shaw/Tool/build-tools/build-gcc-XXX/gcc'
make: *** [all-gcc] Error 2
大虾帮解答解答啊!!
作者: EricFisher    时间: 2012-03-19 09:16
这些是lex, yacc的错误,你的机器上装有flex和bison了么?
作者: xiaoquan9653    时间: 2012-03-19 18:32
这些我都装了呀
作者: xiaoquan9653    时间: 2012-03-19 18:33
哎,今天编译了下binutils也有问题:
configure: error: GAS does not know what format to use for target tricore-unknown-linux-gnu
Configure in /home/shaw/Tool/build-tools/tricore-binutils/gas failed, exiting.
汇编器不识别格式?
作者: EricFisher    时间: 2012-03-19 18:58
binutils是不是没有移植?target tricore不识别。
作者: xiaoquan9653    时间: 2012-03-19 21:09
我参考了一个交叉编译arm的文档,他是先编译binutils,然后编译gcc的,我也按照他的方法编译了针对arm的交叉编译,也能顺利通过
但是,编译tricore这个芯片的binutils就有错误,不明白呀!!
作者: xiaoquan9653    时间: 2012-03-19 21:10
EricFisher 发表于 2012-03-19 09:16
这些是lex, yacc的错误,你的机器上装有flex和bison了么?


这个问题,还请大牛帮解决下呀!!
作者: EricFisher    时间: 2012-03-20 08:52
binutils缺省应该没有支持tricore。你确定你的binutils支持这个tricore么?
作者: xiaoquan9653    时间: 2012-03-20 22:27
EricFisher 发表于 2012-03-20 08:52
binutils缺省应该没有支持tricore。你确定你的binutils支持这个tricore么?



我从移植这个gcc的官网下载的呀,肯定是支持的!!
不知道是什么问题了!
作者: xiaoquan9653    时间: 2012-03-22 22:31
回复 10# EricFisher
这个移植了呀,这是hitec公司针对他们的芯片移植的gcc的源码。

   




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2