找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 10220|回復(fù): 3
收起左側(cè)

keil軟件連接時出現(xiàn)ERROR L103: EXTERNAL ATTRIBUT DO NOT MATCH PUBLIC

[復(fù)制鏈接]
ID:329679 發(fā)表于 2018-5-20 02:10 | 顯示全部樓層 |閱讀模式
30黑幣
各位大佬,我用keil編譯源程序時沒問題,可是在連接時,出現(xiàn)以下報錯*** ERROR L103: EXTERNAL ATTRIBUT DO NOT MATCH PUBLIC。我試過查詢一些解決方法如下圖,說是改變外部聲明來匹配變量聲明,然后我在聲明全局變量的時候加了extern,但是之后連接時仍然還會出現(xiàn)上面的報錯。              不幸的是,在用了extern聲明全局變量之后,又出了一個新的報錯*** ERROR L118: REFERENCE MADE TO ERRONEOUS EXTERNAL,我在.h文件中查看了,也沒發(fā)現(xiàn)外部參數(shù)或函數(shù)被覆蓋。希望有大佬能幫忙解答一下,該如何解決。

圖片1.png
回復(fù)

使用道具 舉報

ID:329679 發(fā)表于 2018-5-20 12:44 | 顯示全部樓層
我已將問題找到了,根據(jù)報錯,在主函數(shù)找到了定義的全局變量,在前面加了extern單獨(dú)進(jìn)行聲明,并重新改了變量名,現(xiàn)在程序已經(jīng)能夠正常連接了。
回復(fù)

使用道具 舉報

ID:329679 發(fā)表于 2018-5-20 12:47 | 顯示全部樓層
我已經(jīng)將問題解決了,通過報錯發(fā)現(xiàn)錯誤變量在主函數(shù)中,就單獨(dú)聲明該全局變量,并把變量名更愛后,發(fā)現(xiàn)可以正常連接。

評分

參與人數(shù) 1黑幣 +5 收起 理由
15942379927 + 5 淡定

查看全部評分

回復(fù)

使用道具 舉報

ID:1087948 發(fā)表于 2023-7-31 12:31 | 顯示全部樓層
*** ERROR L103: EXTERNAL ATTRIBUT DO NOT MATCH PUBLIC:這個錯誤通常發(fā)生在你在一個文件中聲明了一個全局變量或函數(shù),然后在另一個文件中試圖使用它,但是兩個地方的聲明不匹配。例如,你可能在一個文件中聲明了一個返回類型為int的函數(shù),但是在另一個文件中嘗試將其作為返回void的函數(shù)來調(diào)用。

*** ERROR L118: REFERENCE MADE TO ERRONEOUS EXTERNAL:這個錯誤通常發(fā)生在你試圖引用一個不存在的外部變量或函數(shù),或者該變量或函數(shù)的聲明有誤。

解決這些問題的方法可能包括:

確保你在所有文件中對同一個全局變量或函數(shù)的聲明都是一致的。例如,如果你在一個文件中聲明了一個返回類型為int的函數(shù),那么你在其他所有文件中都應(yīng)該將其聲明為返回類型為int的函數(shù)。

如果你在一個文件中聲明了一個全局變量或函數(shù),但是在另一個文件中沒有使用extern關(guān)鍵字來引用它,那么你需要添加extern關(guān)鍵字。

檢查你的代碼,確保你沒有試圖引用一個不存在的外部變量或函數(shù)。

如果你在.h文件中聲明了一個全局變量或函數(shù),但是在.c文件中沒有找到對應(yīng)的定義,那么你需要在.c文件中添加對應(yīng)的定義。

希望這些信息能夠幫助你解決問題。如果你還有任何疑問,歡迎隨時向我提問。
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表