GCC版本問題引發的floating point exception


在Linuxg開發中經常遇到開發環境版本與程序運行時環境版本不一致,由於使用高版本的gcc glibc 編譯後在低版本的glibc上運行導致,可能導致Floating Point Exception運行時錯誤。高版本的gcc在鏈接時採用了新的哈希技術來提高動態鏈接的速度,這在低版本中是不支持的。因此會發生這個錯誤。這是由於現在的gcc在link的時候默認會採用選項--hash-style=gnu,而使用這種Hash表的方式可以大大提升動態鏈結時的效率。 而老版本的glibc本並未支持,我們只要在在程序連接選項中加上-Wl,--hash-style=sysv就可以解決這個問題了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章