包含gdbserver时,Buildroot交叉编译错误-声明冲突'typedef struct rpl_mbstate_t rpl_mbstate_t'

问题描述

使用buildroot-2020.05.1时,包含gdbserver时出现以下错误

In file included from build-gnulib-gdbserver/import/stdint.h:556,from ../common/common-defs.h:66,from ../common/common-debug.c:20:
             /home/bcu/work/buildroot-2020.05.1/output/host/arm-buildroot-linux- 
             uclibcgnueabihf/include/c++/9.3.0/cwchar:58:5: 
             error: conflicting declaration ‘typedef struct rpl_mbstate_t rpl_mbstate_t’
             58 |   } mbstate_t;

解决方法

现在遇到了同样的问题。您必须在 Buildroot 配置中为工具链启用宽字符支持:

  1. 运行 make nconfig(或 make menuconfig,如果您愿意)
  2. 选择Toolchain -> Enable WCHAR support,保存配置并退出
  3. 清理之前的工具链构建:make clean
  4. 重新构建一切:make -j$(nproc)

在为 ARM32LE 编译 GCC 5.5.0 和 uClibc 时,这对我使用 Buildroot 2020.02.10 有所帮助。希望这也能帮助你和谷歌的其他人:)