Символы, не входящие в командную строку компилятора - PullRequest
0 голосов
/ 06 ноября 2019

У меня странная проблема со сборкой конфигурации выпуска в Eclipse.

  • Eclipse 2019-09 R (4.13.0) + набор инструментов SW4STM32.
  • Проект сгенерирован CubeMX (5.4.0), тип проекта преобразуется из C в C ++ после загрузки в Eclipse с помощью контекстного меню панели инструментов.

Стандартная конфигурация «Отладка» сразу же подойдет. Конфигурация «Release» имела проблемы с параметрами компилятора и компоновщика, причем некоторые из них добавлялись дважды, что вызывало ошибку при вызове. Немного подправив настройки, мне удалось приблизить его к «Отладке».

В Project-> Properties-> C / C ++ Build-> Settings-> MCU G ++ Compiler «Все параметры» выглядят так:

-mcpu=cortex-m3 -mthumb -mfloat-abi=soft -D__weak=__attribute__((weak)) -D__packed=__attribute__((__packed__)) -DUSE_HAL_DRIVER -DSTM32F103xB -I../Inc -I../Drivers/STM32F1xx_HAL_Driver/Inc -I../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I../Drivers/CMSIS/Include -I"D:\eclipsePjt\SW4STM32_WS\libraries\Utilities" -I"D:\eclipsePjt\SW4STM32_WS\libraries\Utilities\platform\STM32F1" -Og -g -Wall -fmessage-length=0 -ffunction-sections -c -fno-exceptions -fno-rtti

Единственная разница с конфигурацией «Debug» заключается в флаге «-g», который там равен «-g3».

Однако, когда я пытаюсь построить проект, он терпит неудачу, потому чтоон не видит конфигурацию MCU. Сравнение команд, используемых для запуска компиляторов C ++, показывает, что в командной строке отсутствуют все записи "-D". Ниже приведен вывод на консоль при запуске конфигурации «Отладка»:

Invoking: MCU G++ Compiler
D:\eclipsePjt\SW4STM32_WS\projects\can_uart\Debug
arm-none-eabi-g++ -mcpu=cortex-m3 -mthumb -mfloat-abi=soft '-D__weak=__attribute__((weak))' '-D__packed=__attribute__((__packed__))' -DUSE_HAL_DRIVER -DSTM32F103xB -I"D:/eclipsePjt/SW4STM32_WS/projects/can_uart/Inc" -I"D:/eclipsePjt/SW4STM32_WS/projects/can_uart/Drivers/STM32F1xx_HAL_Driver/Inc" -I"D:/eclipsePjt/SW4STM32_WS/projects/can_uart/Drivers/STM32F1xx_HAL_Driver/Inc/Legacy" -I"D:/eclipsePjt/SW4STM32_WS/projects/can_uart/Drivers/CMSIS/Device/ST/STM32F1xx/Include" -I"D:/eclipsePjt/SW4STM32_WS/projects/can_uart/Drivers/CMSIS/Include" -I"D:/eclipsePjt/SW4STM32_WS/libraries/Utilities" -I"D:/eclipsePjt/SW4STM32_WS/libraries/Utilities/platform/STM32F1" -Og -g3 -Wall -fmessage-length=0 -ffunction-sections -c -fno-exceptions -fno-rtti -MMD -MP -MF"Utilities/platform/STM32F1/can_impl.d" -MT"Utilities/platform/STM32F1/can_impl.o" -o "Utilities/platform/STM32F1/can_impl.o" "D:/eclipsePjt/SW4STM32_WS/libraries/Utilities/platform/STM32F1/can_impl.cpp"

Для «выпуска» эта распечатка почти такая же, но без этих четырех «-D» в начале.

Это проблема с Eclipse, SW4STM32 или CubeMX?

Есть ли способ это исправить?

Примечание: здесь сообщение на форуме SW4STM32.

...