你可以自己修改参数,用MIPS32的。只是我需要MIPS64,用MIPS64做例子罢了。 multilib的脚本之前我发过,但是我没用过,好像也是-m32对应32的。 脚本修正,刚才的脚本有一点儿拼写错误。 2011/1/6 PcX <xunxun1982@xxxxxxxxx>: > 不懂MIPS64,如果是64位编译器,编译x86时加入-m32吧。 > 另外为啥把全部的优化都关闭呢,-g -O2不可行? > > ncurese是啥?应该是ncurses吧。 > > 于 2011/1/6 16:35, Liu 写道: > > 之前水哥写了一个通用的,我这个是针对cross的。具体完整“脚本”见附件,我是想弄一个好的脚本出来,有心无力。 > > 以MIPS为例,我们会得到3个目标: > 1,运行在MIPS上的gdb。 > 2,运行在MIPS上的gdb-server。 > 3,运行在x86上的 交叉gdb。 > 目标1用来在MIPS的板子上直接运行,ssh过去调试的时候用这个。 > 目标2和目标3配合起来做远程调试,具体怎么用我还不会。 > > 下来结合步骤来说一下build的方法: > > gdb需要termcap,这样需要自己build出来一个,当然,本机的libncurese-dev还是要安装的。因为本机安装的libncurese-dev是给目标3用的。我们现在build的这个termcap是给目标1和目标2用的。 > > tar vxf ${SOURCE}/termcap-1.3.1.tar.gz > cd termcap-1.3.1/ > 不解释 > > CC="${CROSS_TARGET}-gcc ${BUILD64}" \ > RANLIB="${CROSS_TARGET}-ranlib" \ > ./configure --prefix=/tools --host=${CROSS_TARGET} --target=${CROSS_TARGET} > 这个需要我们指定MIPS的交叉编译器。--host指的是编译出来的gdb运行在什么平台下,这里必然是MIPS了。 > > make && make install > cd.. > 不解释 > > 然后就开始gdb的build了 > > tar vxf ${SOURCE}/gdb-7.2.tar.bz2 > 这个没啥好解释的 > > mkdir gdb-server-build > cd gdb-server-build > 这个目录是用来build目标1和目标2的,所以就叫gdb-server-build吧。 > > CC="${CROSS_TARGET}-gcc ${BUILD64}" \ > ../gdb-7.2/configure --prefix=/tools \ > --host=${CROSS_TARGET} --target=${CROSS_TARGET} --build=${CROSS_HOST} \ > --disable-shared --enable-64-bit-bfd > 用--enable-64-bit-bfd的原因是因为我需要支持MIPS64,--disable-shared是为了少一些麻烦。这里prefix是tools,而不是cross-tools,是因为这里编译出来的二进制都是在MIPS上跑的,跟前面的termcap是一样的。 > > make CFLAGS="-g -O0" && make install > 毕竟修改了,还要调试的,所以加上调试信息比较好。 > cd .. > > 最后是build交叉gdb > mkdir gdb-build > cd gdb-build > ../gdb-7.2/configure --prefix=/cross-tools --target=${CROSS_TARGET} > 唯一不同的是,这个交叉gdb是在x86上跑,所以prefix是cross-tools > make CFLAGS="-g -O0" && make install > cd .. > > 这时我们就得到了一套gdb出来,基本上可以满足大多数需要了。 > > -- > Regards > PcX