D:\Keil_v5\ARM\ARMCC\Bin\..\include\string.h(321): error: #169: expected a declaration

正点原子中源码FreeRTOS在使用:

string.h第321行:(报错)

+extern _ARMABI void *memset(void * /*s*/, int /*c*/, size_t /*n*/) __attribute__((__nonnull__(1)));

 

错误信息为:

D:\Keil_v5\ARM\ARMCC\Bin\..\include\string.h(321): error:  #169: expected a declaration
  +extern _ARMABI void *memset(void * /*s*/, int /*c*/, size_t /*n*/) __attribute__((__nonnull__(1)));
..\HARDWARE\TIMER\timer.c: 0 warnings, 1 error

 

我的疑惑是:

+extern _ARMABI void *memset( /*  ***  */);

为什么在extern前面会出现+,而且多个程序源码中的string.h都有+

 

解决方案:

方法1:删除+

 

方法2:

用以下语句:

extern _ARMABI void *memset(void * /*s*/, int /*c*/, size_t /*n*/) __attribute__((__nonnull__(1)));

替换源码中的:

+extern _ARMABI void *memset(void * /*s*/, int /*c*/, size_t /*n*/) __attribute__((__nonnull__(1)));

 

结果显示:

Build target 'FreeRTOS'
"..\OBJ\LED.axf" - 0 Error(s), 0 Warning(s).
Build Time Elapsed:  00:00:01

无报错!

 

感谢博主(https://www.cnblogs.com/sunny99/)

sumoier

对本文的支持 

 

posted @   20岁博客少女  阅读(3119)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示