Re: [問題] link出現的錯誤

看板LinuxDev作者 (打卡上班的日子)時間17年前 (2008/05/01 22:01), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《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

05/02 00:05, , 1F
加上這個試試 -fno-stack-protector
05/02 00:05, 1F
文章代碼(AID): #186Sr3QK (LinuxDev)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
文章代碼(AID): #186Sr3QK (LinuxDev)