下载gdbhttp://ftp.gnu.org/gnu/gdb/
最好下载新一点的版本,鄙人用的交叉编译工具arm-linux-androideabi 在5.x版本中不识别
下载,解压后执行:
./configure --host=arm-linux-androideabi --prefix=$PWD/__install
其中__install为新建的安装目录
make
make过程中有以下错误:
complete.c:2059: error: undefined reference to 'setpwent'
找到该文件,./readline/complete.c 修正方法为在该行上下加入
#if defined (HAVE_GETPWENT)
setpwent ();
#endif
后来遇到这个wenti
linux-low.c:115:3: error: typedef redefinition with different types ('struct Elf32_auxv_t' vs 'struct Elf32_auxv_t')
} Elf32_auxv_t;
^
/opt/arm-linux-androideabi/bin/../sysroot/usr/include/elf.h:52:3: note: previous definition is here
} Elf32_auxv_t;
^
linux-low.c:130:3: error: typedef redefinition with different types ('struct Elf64_auxv_t' vs 'struct Elf64_auxv_t')
} Elf64_auxv_t;
^
/opt/arm-linux-androideabi/bin/../sysroot/usr/include/elf.h:59:3: note: previous definition is here
} Elf64_auxv_t;
问题是跟现有的头文件重复定义
将相应文件注释掉即可如下
linux-low.c/linux-low.c
将Elf32_auxv_t 和 Elf64_auxv_t 注释掉
最后make install