bad defsym; format is --defsym name=value



说明:我创建了一个STM32项目,目的是获得一个独立于平台的构建和输出文件,如.hex、.bin和.elf。为此,我在CMake构建系统下创建了这个项目。已完成make配置设置和工具链设置。然而,在构建阶段即将结束时,我遇到了这个错误。

链接标志:在"compiler_flags.cmake"文件。

...
set(LD_FLAGS "-Wl,-Map=${PROJECT_BINARY_DIR}/${CMAKE_PROJECT_NAME}.map,--cref -T${LD_SCRIPT} -Wl,--gc-sections -static,--specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -Wl,--defsym,__cxa_pure_virtual=1 -Wl,--start-group -lc -lm -Wl,--end-group")

错误输出:

...
...
...
Assembler messages:
Fatal error: bad defsym; format is --defsym name=value
ninja: build stopped: subcommand failed.

你的LDFLAGS有错误:

  • -Wl, --gc-sections
  • 不应有空格
  • -defsym ... __cxa_pure_virtual=1改为-Wl,--defsym,__cxa_pure_virtual=1

错误的来源在汇编器编译器工具链定义中。输入arm-none-eabi-gcc.exe而不是arm-none-eabi-as.exe,问题就解决了。

最新更新