你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

mbed导出keil 5工程,编译错误怎么处理??

[复制链接]
adlu 提问时间:2016-11-22 11:47 /
悬赏20ST金币未解决
本帖最后由 adlu 于 2016-11-22 15:02 编辑

QQ截图20161122114545.jpg

在mbed网页开发环境中导出keil 5的工程,编译通不过,出现30个相同的错误,
mbed/platform/Callback.h(247): error:  #1209: invalid argument to attribute "deprecated"
请问该怎么处理?

收藏 1 评论11 发布时间:2016-11-22 11:47

举报

11个回答
xhzheng 回答时间:2016-11-22 13:17:09
1209行代码是什么??
党国特派员 回答时间:2016-11-22 13:17:17
加上--cpp选项试试。
QQ图片20161122131629.png

如果能把你的项目上传上来更好。
adlu 回答时间:2016-11-22 13:39:17
xhzheng 发表于 2016-11-22 13:17
1209行代码是什么??

不是1209行代码,是#1209 号error
adlu 回答时间:2016-11-22 13:40:28
本帖最后由 adlu 于 2016-11-22 13:49 编辑

QQ截图20161122133826.jpg

加了,还是没有作用。加的位置不对吗? 加在后面也试过了

Misc Controls栏的全部内容是:
--cpp -DDEVICE_RTC=1 -DDEVICE_SLEEP=1 -DTOOLCHAIN_object -DTOOLCHAIN_ARM_STD -D__ASSERT_MSG -DTARGET_STM32F1 --no_rtti -DTARGET_STM32F103RB -DMBED_BUILD_TIMESTAMP=1479540101.93 -Otime -DDEVICE_PORTINOUT=1 -D__CORTEX_M3 -DTARGET_FF_ARDUINO -c -O3 -DDEVICE_CAN=1 -DDEVICE_PORTOUT=1 -DDEVICE_STDIO_MESSAGES=1 -DTARGET_RELEASE --split_sections -DARM_MATH_CM3 -DTARGET_LIKE_CORTEX_M3 -DDEVICE_ANALOGIN=1 -DTARGET_NUCLEO_F103RB -DDEVICE_PORTIN=1 -DTARGET_CORTEX_M --cpu=Cortex-M3 -DTARGET_FF_MORPHO -DDEVICE_I2C=1 --preinclude=mbed_config.h -DTARGET_STM -DTOOLCHAIN_ARM -DDEVICE_INTERRUPTIN=1 --no_depend_system_headers -DTARGET_UVISOR_UNSUPPORTED --md -DDEVICE_PWMOUT=1 -DDEVICE_SERIAL_ASYNCH=1 --gnu --apcs=interwork -DDEVICE_SPI=1 -D__MBED__=1 -DDEVICE_SPISLAVE=1 -DDEVICE_SERIAL=1 -DTARGET_M3 -DDEVICE_I2CSLAVE=1 -D__CMSIS_RTOS -D__MBED_CMSIS_RTOS_CM -DTARGET_LIKE_MBED
高二毛 回答时间:2016-11-22 14:20:55
可能是KEIL对于变量的属性没有定义,你可以将变量的属性暂时去掉,应该就是OK.
adlu 回答时间:2016-11-22 14:51:32
本帖最后由 adlu 于 2016-11-22 14:56 编辑

经过分析,这是编译器不支持该提示信息的问题。
出现的30个错误,内容相同,如下图。
1.jpg
其作用只不过是输出提示信息“Arguments to callback have been reordered to Callback(func, arg)”。
但是keil不支持MBED_DEPRECATED_SINCE宏所使用的提示语法,所以出现该错误。

查看该宏定义,在toolchain.h文件,其功能描述何形式如下图。
2.jpg
该宏又调用了MBED_DEPRECATED宏,继续查看,光标定位到223行。
3.jpg

由此可知,导出的keil 5工程使用的是GNUC编译工具链。
但不知道为什么keil 5不支持该提示信息。


adlu 回答时间:2016-11-22 14:54:41
既然只是提示信息,直接将MBED_DEPRECATED_SINCE宏置空即可。修改如下:
5.jpg

再次编译,0错误,0警告。
6.jpg
党国特派员 回答时间:2016-11-22 17:48:14
如果是gnu 的话,你在c/c++选项里加入 --gnu选项。
xhzheng 回答时间:2016-11-23 08:33:58
哇哦,学习了;
12下一页

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版