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

對本文的支持 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM