明远智睿技术论坛

 找回密码
 立即注册
搜索
查看: 3893|回复: 2
打印 上一主题 下一主题

关于gcc与gdb版本

[复制链接]

3

主题

5

帖子

37

积分

新手上路

Rank: 1

积分
37
跳转到指定楼层
楼主
发表于 2016-11-16 08:58:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我在贵公司购买的My-i.mx28的开发板,现在要在上面移植原来运行于wince的产品,目前板子上的linux系统,如你们客服所说是2.6.35版本的,请问对应的arm-linux-gcc 以及 gdb 我应该用哪个版本?我的开发环境是ubuntu 12.04
我看你们的网盘上给的是用arm-fsl-linux-gnueabi, 这个是飞思卡尔专门定制的吗? 我想知道是否只能使用这个还是有其它选择?谢谢!
另:我原来一直在windows平台开发产品,对于linux不咋懂,还请指教。

回复

使用道具 举报

36

主题

745

帖子

2872

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2872
沙发
发表于 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
就可以开始调试了
回复 支持 反对

使用道具 举报

3

主题

5

帖子

37

积分

新手上路

Rank: 1

积分
37
板凳
 楼主| 发表于 2016-11-16 10:06:11 | 只看该作者
好的,我试下,谢谢。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|明远智睿  

GMT+8, 2024-11-26 04:25 , Processed in 0.064805 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表