2012-08-10 255 views
0

我想使用ubuntu從C文件創建二進制文件。我做了這樣的事情:在Ubuntu上創建二進制文件

gcc -c ArrayError3.c -o ArrayError3. 

這會在我的桌面上創建一個文件ArrayError3。當我點擊它時,ubuntu告訴我沒有爲目標文件安裝應用程序。我非常喜歡C和linux。任何人都可以請告訴我如何解決這個問題?非常感謝。

回答

1

只需刪除-c,以便在製作目標文件後不會停止。 -c選項告訴gcc不運行鏈接器。如果省略它,gcc會爲你製作一個完整的可執行文件。

+0

這是否構成靜態或動態二進制文件?我問的原因是因爲我的大學學者告訴我在這個二進制文件上運行zzuf(一個應用程序輸入模糊器)。我碰巧知道zzuf不適用於靜態二進制文件。另一個問題是zzuf是應用程序輸入模糊器(默認情況下輸入是文件)。有問題的應用程序只能從控制檯獲取用戶輸入。 – 2012-08-10 09:09:37

+0

@EShindler只要你不傳遞任何'-static'參數,你應該可以。 – cnicutar 2012-08-10 09:18:47

0

您需要閱讀更多關於GCC參數的含義。 -c選項告訴GCC創建一個目標文件,而不是一個可執行文件。這個目標文件需要被鏈接來創建一個可執行文件。

這是常用的,當你有幾個源文件需要鏈接在一起,形成一個可執行文件。例如:

$ gcc source1.c -c -o source1.o 
$ gcc source2.c -c -o source2.o 
$ gcc source1.o source2.o -o exec 

爲您解決方案它根本不使用-c選項。

0

的問題是在

gcc -c 

-c開關讓GCC不是你的代碼鏈接到一個實際的可執行文件,只有它編譯成一個object file,這是不是一個「完整」的格式,它不能然後運行。只使用

gcc ArrayError3.c -o ArrayError3 

改爲。