|
發布時間: 2018-5-20 02:10
正文摘要:各位大佬,我用keil編譯源程序時沒問題,可是在連接時,出現以下報錯*** ERROR L103: EXTERNAL ATTRIBUT DO NOT MATCH PUBLIC。我試過查詢一些解決方法如下圖,說是改變外部聲明來匹配變量聲明,然后我在聲明全局變 ... |
|
*** ERROR L103: EXTERNAL ATTRIBUT DO NOT MATCH PUBLIC:這個錯誤通常發生在你在一個文件中聲明了一個全局變量或函數,然后在另一個文件中試圖使用它,但是兩個地方的聲明不匹配。例如,你可能在一個文件中聲明了一個返回類型為int的函數,但是在另一個文件中嘗試將其作為返回void的函數來調用。 *** ERROR L118: REFERENCE MADE TO ERRONEOUS EXTERNAL:這個錯誤通常發生在你試圖引用一個不存在的外部變量或函數,或者該變量或函數的聲明有誤。 解決這些問題的方法可能包括: 確保你在所有文件中對同一個全局變量或函數的聲明都是一致的。例如,如果你在一個文件中聲明了一個返回類型為int的函數,那么你在其他所有文件中都應該將其聲明為返回類型為int的函數。 如果你在一個文件中聲明了一個全局變量或函數,但是在另一個文件中沒有使用extern關鍵字來引用它,那么你需要添加extern關鍵字。 檢查你的代碼,確保你沒有試圖引用一個不存在的外部變量或函數。 如果你在.h文件中聲明了一個全局變量或函數,但是在.c文件中沒有找到對應的定義,那么你需要在.c文件中添加對應的定義。 希望這些信息能夠幫助你解決問題。如果你還有任何疑問,歡迎隨時向我提問。 |
| 我已將問題找到了,根據報錯,在主函數找到了定義的全局變量,在前面加了extern單獨進行聲明,并重新改了變量名,現在程序已經能夠正常連接了。 |