2013-06-23 52 views
1

對於可執行一個簡單的「Hello World」應用,我使用,以創建一個使用GCC編譯器的.exe文件下面的命令:如何讓C程序在Windows 7

cpp hello.c > hello.i

(成功)

gcc -S hello.i

(成功)

as -o hello.o hello.s

(成功的)

當最後鏈接中的文件用下面的命令來獲得一個.exe,我得到一個錯誤:

C:\C_Experiments\test>ld -o test2.exe test2.o 
test2.o:test2.c:(.text+ 0 x 9): undefined reference to __main 
test2.o:test2.c:(.text+0 x 15): undefined reference to printf 
ld: test2.o: bad reloc address 0x0 in section `.pdata' 
+1

'GCC的hello.c -o hello' – BLUEPIXY

+0

還在原地學習C語言編程,還是想知道,如果我的目標是讓AC程序可執行如何做到這一點,我得到你在約阿希姆說的,只是爲了製作簡單的程序作爲可執行文件,但在其他地方http://www.ntu.edu.sg/home/ehchua/programming/cpp/gcc_make.html當我閱讀本文時他們提供了幾個不同的步驟,以便如何通過GCC編譯器使c程序成爲可執行文件,所以步驟th我已經複製瞭如彙編代碼創建b和機器代碼創建跟隨在鏈接所有文件,所以當這個過程真的需要你可以解釋 – user2514207

+0

檢查'gcc -v hello.c' – BLUEPIXY

回答

2

您需要與包括啓動功能和其他所有標準功能的運行時庫鏈接。

爲什麼不跳過預處理器和彙編器的步驟,直接轉到對象文件?鏈接時還會使用gcc,這會自動添加所需的額外庫?或者對於簡單的單一源文件程序直接轉到可執行文件?

要麼

$ gcc hello.c -c -o hello.o 
$ gcc hello.o -o hello 

或者

$ gcc hello.c -o hello 
+0

m仍然學習c編程,仍然試圖明白我的目標是讓ac程序成爲可執行程序它怎麼做,我得到了你在Joachim中所說的,只是爲了製作簡單的程序作爲可執行程序,但在其他地方http://www.ntu.edu.sg/home/ehchua/programming /cpp/gcc_make.html當我在本文中閱讀時,他們提供了幾個不同的步驟,以便如何通過GCC編譯器使c程序成爲可執行文件,所以我已經複製了諸如彙編代碼創建b和機器代碼創建以及linkin之後的所有步驟這些文件,所以這個過程何時真正需要,你可以解釋一下 – user2514207

相關問題