1. 程式人生 > >gcc編譯得到的檔案型別非 ELF executable

gcc編譯得到的檔案型別非 ELF executable

準備簡單學習一下編譯連結的過程。找到一篇文章:
gcc程式的編譯過程和連結原理

但是遇到一個問題:
用gcc -o hello hello.c 編譯,然後用file hello檢視檔案格式:
image
得到的卻並不是和作者一致的 ELF 64-bit LSB executable型別。

搜了很久,居然沒找到滿意的解釋,只找到隻言片語,記錄一下,等搞明白了再來補充。
https://bbs.archlinuxcn.org/viewtopic.php?id=5423

現在的可執行檔案都是 shared 了,以前的會是 executable。原因是,現在編譯器都預設啟用了 PIE(位置無關可執行檔案)。