Linux下Scons编译工程遇到宏定义的问题,如何解决?

发布于 2020-10-12 17:13:34
  • OS: Ubuntu 20.04
  • Scons版本:v3.1.2
  • 背景描述:

在win10下使用mdk开发的工程,编译没有error。转用Ubuntu系统,重新编译工程时出现如下错误。

# scons
/rtthread/bsp/libraries/STM32L4xx_HAL/CMSIS/Include/arm_math.h:314:4: error: #error "Define according the used Cortex core ARM_MATH_CM7, ARM_MATH_CM4, ARM_MATH_CM3, ARM_MATH_CM0PLUS or ARM_MATH_CM0"
  314 |   #error "Define according the used Cortex core ARM_MATH_CM7, ARM_MATH_CM4, ARM_MATH_CM3, ARM_MATH_CM0PLUS or ARM_MATH_CM0"

目标板是M4的,因此在Board文件夹下的SConscript有如下宏定义

CPPDEFINES = ['STM32L451xx,ARM_MATH_CM4,ARM_MATH_MATRIX_CHECK,ARM_MATH_ROUNDING, __FPU_PRESENT']
group = DefineGroup('Board', src, depend = [''], CPPPATH = path, CPPDEFINES = CPPDEFINES)

Return('group')

现在编译信息显示未定义ARM_MATH_CM4
查看RTT编程指南获得如下信息,见下图
深度截图_选择区域_20201012165604.png
知道DefineGroup函数是扩展的函数。而Scons工具是通过apt安装的,应该是不支持这个函数的。

  • 问:这个问题应该如何解决??

查看更多

关注者
0
被浏览
146
bernard
bernard 2020-10-18

是这样定义的?
['STM32L451xx,ARM_MATH_CM4,ARM_MATH_MATRIX_CHECK,ARM_MATH_ROUNDING, __FPU_PRESENT']

那这个宏定义是"STM32L451xx,ARM_MATH_CM4,ARM_MATH_MATRIX_CHECK,ARM_MATH_ROUNDING, __FPU_PRESENT"了,而不是分开的一个个宏定义。建议自己仔细检查下

1 个回答

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览