我在Eclipse中构建Release配置时遇到了奇怪的问题。
默认的“调试”配置可以立即建立。 “发行”配置的编译器和链接器参数有问题,其中一些参数被添加了两次,从而导致调用错误。调整了一些设置后,我设法使其接近“调试”。
在Project-> Properties-> C / C ++ Build-> Settings-> MCU G ++编译器中,“所有选项”如下所示:
-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
与“调试”配置唯一的区别在于“ -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论坛上的related post。