2016-10-22 49 views
-1

因此,我想將.c文件轉換爲.exe文件。如何使用鏈接器將目標文件轉換爲可執行文件(C目標文件)

直接指揮我所知道的是的gcc -o foo的foo.c的我不想要這個方式

但後來我想這樣做,一步一步來,就像我要轉換的.c到.S使用cc編譯器,然後.S到.o使用匯編程序然後.o到.exe使用連接器。

,所以我知道如何轉換.C要.S要.O但當時我不知道鏈接器命令

我只知道它是這樣的: LD -lc -o富-ld Linux的-x86-64.so.2 foo.o的-e主(不確定,有件事我缺少的,所以請大家幫幫我)

PS:我使用的Linux編譯(Ubuntu的味)

+0

裝配步驟是不必要的,因爲你不可能在實踐中這樣做。其餘步驟通常使用'Makefile'完成。因此,我建議您熟悉如何使用'make'和'Makefile',以及如何在各種情況下調整典型配方。它不僅可以幫助您理解實踐中步驟的發生方式(因爲'make'顯示默認運行的每個命令),但您很快就會發現編寫'Makefile'使得維護項目變得更加容易,而且檢查其他項目的''Makefile's是相當豐富的。 –

回答

0

請記住,鏈接器命令w不適合操作系統,分發和平臺特定。你可以看到GCC通過讓它帶有詳細輸出鏈接使得它什麼:

gcc -v -o foo foo.o 

這是最可靠,最快捷的方式得到你需要調用命令。這將包括系統庫搜索目錄,系統庫和其他常常不那麼直接的選項。

出於所有上述原因,我必須強烈建議不要直接調用ld,除非您有一個非常具體的用例來保證這一點。

相關問題