[英]How can I generate an ELF file with GCC?
我正在Linux OS上編寫C和C ++代碼,我正在使用GCC。 完成我的代碼后,我想生成一個ELF文件。 我只能生成“a.out”文件而我不需要它。 我怎樣才能獲得ELF文件? ELF文件出現的原因是什么? 或者是否可以使用此程序生成此文件?
編譯器(即gcc
或g++
)將調用生成ELF可執行文件的鏈接器( ld
)。
實際上,您將使用構建器程序(如make
)來驅動gcc
命令。 看到這個答案 。
gcc
的默認輸出文件仍然命名為a.out
(由於歷史原因),但它是一個ELF文件。 而你真的想讓gcc
輸出一個更具花哨名稱的可執行文件。
簡單的例子,您編寫單文件hello-world.c
程序。 你可以用eg編譯它
gcc -Wall -g hello-world.c -o hello-world-bin
( gcc
的參數順序很重要!)
生成的hello-world-bin
是一個ELF可執行文件。 檢查
file hello-world-bin
然后運行它
./hello-world-bin your arguments to it
稍后,學習如何在其上使用gdb
調試器。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.