Ошибка перекрестной компиляции Buildroot при включении gdbserver — конфликтующее объявление ‘typedef struct rpl_mbstate_t rpl_mbstate_t’

#compiler-errors #raspberry-pi3 #cross-compiling #buildroot

#ошибки компилятора #raspberry-pi3 #перекрестная компиляция #buildroot

Вопрос:

С 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;
  

Ответ №1:

Прямо сейчас возникла та же проблема. Вы должны включить поддержку широких символов для набора инструментов в конфигурации Buildroot:

  1. Запустите make nconfig (или make menuconfig , если вы предпочитаете)
  2. Выберите Toolchain -> Enable WCHAR support , сохраните конфигурацию и выйдите
  3. Очистите предыдущую сборку toolchain: make clean
  4. Соберите все заново: make -j$(nproc)

Это помогло мне с Buildroot 2020.02.10 при компиляции GCC 5.5.0 и uClibc для ARM32LE. Надеюсь, это поможет вам и другим пользователям из Google тоже 🙂