交叉编译 gdbserver

如果自己从gdb源码根目录的configure开始构建一个arm端的gdbserver , 使用如下配置:

./configure --prefix=/opt/arm-gdbserver --host=arm-linux-gnueabi --target=arm-linux-gnueabi

会出现如下错误

 

configure: error: no termcap library found
Makefile:10927: recipe for target 'configure-gdb' failed
make[1]: *** [configure-gdb] Error 1
make[1]: Leaving directory '/home/houxd/.local/share/Trash/files/gdb-7.2.1'
Makefile:850: recipe for target 'all' failed
make: *** [all] Error 2

 

很明显需要一个 termcap 的库, 从网上可以容易的找到,但是很难找到适合的位置放置termcap库, 来使gdb链接到. 因为这里是一个交叉环境, 并不是在arm主机上创建的.

而且, termcap也需要交叉编译.

而实际上这个库只是用于 arm-linux-gnueabi-gdb 的, gdbserver 本身不使用.

而arm-linux-gnueabi-gdb本身不是我们需要的, 即便被编译出来也只能放到arm端运行. 

实际上根本不需要这样做, 因为在arm端只需要编辑出gdbserver即可,gdb的client是需要的, 而主机端也是只需要client,不需要server, 那么,

进入到 源码的下的 gdb/gdbserver/目录进行 configure, 然后就可以顺利编译出 arm端的 gdbserver了. 例如这样

./configure --prefix=/opt/arm-gdbserver --host=arm-linux-gnueabi --target=arm-linux-gnueabi

如果我们需要交叉编译arm-linux-guneabi-gdb, 实际上这个是在主机上运行的,配置应该是

./configure --prefix=/opt/arm-gdbserver --host=i386-linux-gnueabi --target=arm-linux-gnueabi

这次不会出现那个error,是由于主机端安装必要库(libcurses5-dev代替了libtermcap),所有主机gcc回正确连接到库. 

 

发布了2 篇原创文章 · 获赞 0 · 访问量 1556
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览