簡體   English   中英

如何使用GCC生成ELF文件?

[英]How can I generate an ELF file with GCC?

我正在Linux OS上編寫C和C ++代碼,我正在使用GCC。 完成我的代碼后,我想生成一個ELF文件。 我只能生成“a.out”文件而我不需要它。 我怎樣才能獲得ELF文件? ELF文件出現的原因是什么? 或者是否可以使用此程序生成此文件?

編譯器(即gccg++ )將調用生成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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM