0
GNU Binutils ld中這些錯誤有什麼區別?ld:undefined symbol vs ld:undefined reference
- 未定義參考
- 未定義的符號
我有一個未定義的引用有很好的理解:出現這種情況,例如當加載器不能找到一個函數的實現。我很想知道未定義符號的原因。
GNU Binutils ld中這些錯誤有什麼區別?ld:undefined symbol vs ld:undefined reference
我有一個未定義的引用有很好的理解:出現這種情況,例如當加載器不能找到一個函數的實現。我很想知道未定義符號的原因。
例如當你在你的linkerscript中使用尚未定義的符號進行一些算術運算時。在我的情況下,這主要是由於錯字。
_syma = 1 ;
_syna += 1 ;
/* error: undefined symbol `_syna' referenced in expression */
或
_syma = 1 ;
_symb = _syna + 1 ;
/* error: undefined symbol `_syna' referenced in expression */
當你分配一個輸出部分未定義的符號,你會得到另一個錯誤:
_syma = 1 ;
.text _syna :
/* error: non constant or forward reference address expression for section .text */
{
*(.text) ;
}