看板 LinuxDev 關於我們 聯絡資訊
※ 引述《SILee (打卡上班的日子)》之銘言: : 請問程式link時出現這樣的錯誤的錯誤訊息是什麼原因造成的? : undefined reference to '__stack_chk_fail' : 我只要在程式裡面宣告一個大一點的array,在link階段就會出現這種錯誤 : 但是把array拿到function外面宣告成global的就沒這個問題 : 看起來像是程式將local variable塞到stack時overflow了 : 但是stack overflow應該是run time error怎麼會在link就出問題? : thanks!! 囧" 我發現原因了 剛剛把程式dump成組語出來看,發現如果宣告一個type為char且size大於8的local array GCC會自動插入__stack_chk_fail這個system call檢查stack是否overflow 而我的程式是run在non OS環境的,所以linker會找不到__stack_chk_fail這個function 可是很奇怪的是如果array的type不是宣告成char就不會有這個問題 @@ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.59.105.115
roylee17:加上這個試試 -fno-stack-protector 05/02 00:05