按照Ras在《适用于树莓派Raspberry Pi的嵌入式QT平台(三) -- 交叉编译 Raspberry Pi 版GDB with Python》一文里的做法,编译windows平台下的gdb,用于调试树莓派上的程序。
准备工作做好后,编译接二连三出现错误,先是wchar.h报错,说mbstate_t未定义,改了半天宏,无效果,
后面通过修改qt-creator-opensource-src-3.6.0-rc1\dist\gdb\source\gdb-7.10.tar.xz\gdb-7.10.tar\gdb-7.10\gdb\gnulib\import\下的wchar.in.h文件,
在191行的
/* Test whether *PS is in the initial state. */
上面暴力添加类型定义,
#define mbstate_t int
解决。
接着又有iswalnum、iswalpha、iswascii等函数重复定义的报错,通过注释C:\MinGW\include下wctype.h中的宏定义解决,具体做法是将第73行的
#ifndef RC_INVOKED
改为
#if 0
还没完,后面还报出symtab.c里strncasecmp未定义,minsyms.c和dwarf2read.c中strcasecmp未定义的错误,通过在文件首部添加函数声明解决:
extern int strncasecmp(const char *s1, const char *s2, register size_t n); // symtab.c的修改,放在#include下面
extern int strcasecmp(const char *s1, cons
准备工作做好后,编译接二连三出现错误,先是wchar.h报错,说mbstate_t未定义,改了半天宏,无效果,
后面通过修改qt-creator-opensource-src-3.6.0-rc1\dist\gdb\source\gdb-7.10.tar.xz\gdb-7.10.tar\gdb-7.10\gdb\gnulib\import\下的wchar.in.h文件,
在191行的
/* Test whether *PS is in the initial state. */
上面暴力添加类型定义,
#define mbstate_t int
解决。
接着又有iswalnum、iswalpha、iswascii等函数重复定义的报错,通过注释C:\MinGW\include下wctype.h中的宏定义解决,具体做法是将第73行的
#ifndef RC_INVOKED
改为
#if 0
还没完,后面还报出symtab.c里strncasecmp未定义,minsyms.c和dwarf2read.c中strcasecmp未定义的错误,通过在文件首部添加函数声明解决:
extern int strncasecmp(const char *s1, const char *s2, register size_t n); // symtab.c的修改,放在#include下面
extern int strcasecmp(const char *s1, cons