正點原子中源碼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
對本文的支持