首页 > 解决方案 > 包含 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;

标签: compiler-errorsraspberry-pi3cross-compilingbuildroot

解决方案


现在遇到了同样的问题。您必须在 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。希望这也能帮助你和谷歌的其他人:)


推荐阅读