tian96610 发表于 2016-11-16 08:58:47

关于gcc与gdb版本

我在贵公司购买的My-i.mx28的开发板,现在要在上面移植原来运行于wince的产品,目前板子上的linux系统,如你们客服所说是2.6.35版本的,请问对应的arm-linux-gcc 以及 gdb 我应该用哪个版本?我的开发环境是ubuntu 12.04
我看你们的网盘上给的是用arm-fsl-linux-gnueabi, 这个是飞思卡尔专门定制的吗? 我想知道是否只能使用这个还是有其它选择?谢谢!
另:我原来一直在windows平台开发产品,对于linux不咋懂,还请指教。

软件01 发表于 2016-11-16 09:38:26

交叉编译工具是官方提供的。gdb可以按以下的方法:
#tar jxvf gdb-6.6-tar-bz2
#cd gdb-6.6
#./configure --target=arm-none-linux-guneabi --prefix=/home/myzr/test/gdb/arm-gdb -v
#make
执行到此步之后我出现了如下的错误
cc1: warnings being treated as errors
/root/tools/gdb-6.6/bfd/elf32-arm.c: In function 'find_thumb_glue':
/root/tools/gdb-6.6/bfd/elf32-arm.c:2452: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result
/root/tools/gdb-6.6/bfd/elf32-arm.c: In function 'find_arm_glue':
/root/tools/gdb-6.6/bfd/elf32-arm.c:2485: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result
这个由于返回值没有被接收 导致编译中断 这是因为makefile中加入了-Werror导致将警告当成了错误
将下列文件中的-Werror选项删除后保存即可重新编译成功
bfd/Makefile:185:WARN_CFLAGS = -W -Wall -Wstrict-prototypes -Wmissing-prototypes -Werror
opcodes/Makefile:175:WARN_CFLAGS = -W -Wall -Wstrict-prototypes -Wmissing-prototypes -Werror
接下来执行:
#make install
#export PATH=$PATH:/home/myzr/test/gdb/arm-gdb
进入gdbserver目录(在gdb目录下):
#./configure --target=arm-none-linux-guneabi --host=arm-none-linux-guneabi
#make CC=arm-none-linux-guneabi-gcc
最后把gdbserver复制到/home/myzr/nfsroot


安装必要的库libthread_db-1.0.so

如果你的嵌入式linux没有安装libthread_db-1.0.so这个库的话,在板子中运行gdbserver会提示错误。解决方法如下:

将你的arm-linux-gcc的交叉编译环境中的/usr/local/arm/3.4.1/arm-linux/lib下的libthread_db-1.0.so文件拷贝到开发板的根目录下的/lib中去(可以先放入nfs共享文件夹中然后再在串口终端中输入拷贝命令)。并在/lib目录建立一个一个指向libthread_db-1.0.so的软链接libthread_db.so.1。

命令如下:#ln -s libthread_db-1.0.so libthread_db.so.1



mount -t nfs 192.168.3.111:/home/myzr/nfsroot nfs/ -o nolock(挂载主机的文件夹到nfs)

#cd /nfs
#./gdbserver 192.168.3.111:2345 hello(在板子的串口终端上运行)
显示:
Process hello created; pid = 3206
Listening on port 2345
Remote debugging from host 192.168.3.111

#cd /home/myzr/nfsroot (我在这个文件夹下面放解压后的文件系统)
#arm-none-linux-guneabi-gdb hello(在ubuntu下面运行)
(gdb) set solib-absolute-prefix /home/myzr/nfsroot
(gdb) set solib-search-path /home/myzr/nfsroot/lib
(gdb) target remote 192.168.3.108:2345
就可以开始调试了

tian96610 发表于 2016-11-16 10:06:11

好的,我试下,谢谢。
页: [1]
查看完整版本: 关于gcc与gdb版本