正点原子中源码FreeRTOS在使用:
string.h第321行:(报错)
+extern _ARMABI void *memset(void * /*s*/, int /*c*/, size_t /*n*/) __attribute__((__nonnull__(1)));
错误信息为:
D:Keil_v5ARMARMCCBin..includestring.h(321): error: #169: expected a declaration
+extern _ARMABI void *memset(void * /*s*/, int /*c*/, size_t /*n*/) __attribute__((__nonnull__(1)));
..HARDWARETIMER imer.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'
"..OBJLED.axf" - 0 Error(s), 0 Warning(s).
Build Time Elapsed: 00:00:01
无报错!
感谢博主(https://www.cnblogs.com/sunny99/)
sumoier
对本文的支持