c編譯生成o
㈠ GCC問題:兩個.C文件編譯成一個.O文件
直接這么做的話,不可以。
不過你可以寫一個.c文件,裡面
#include "xxx.c"
#include "yyy.c"
這樣,然後再編譯,就能變成一個.o了
㈡ 為什麼我的Cfree 編譯後會出現一個.o的文件
mingw這個工具是在windows下模擬linux編譯環境的一個工具。
linux下編譯過程中生成的所有鏈接文件都是以.c/.cpp文件的名稱命名的.o文件,文件格式是elf,
而windows編譯過程中生成的鏈接文件都是.obj文件,文件格式是PE。
這是兩種不同操作系統的一個編譯上的特點。
㈢ c語言代碼怎麼編譯成.o文件再怎麼變成.exe文件
linux下gcc -c wen.c -o wen.o 生成.o文件gcc wen.o -o wen 就變成.exe文件
㈣ 用c語言編程產生*.o、*.c、*.exe這三種文件,用編譯器運行就可以,但直接運行*.exe就不可以
.c不是產生的,是你這個程序的源碼,編譯器編譯的就是這個文件。
當編譯器編譯.c文件後產生了.o文件(在vs中產生的是.obj文件),然後鏈接器將這些.o文件鏈接到一起,成為了.exe文件。
這個exe就是可執行程序,是可以直接運行的。
㈤ Linux C編譯生成的Object文件(.o)文件,是否相當於java的JAR之類的庫文件
雖然我不懂java,但是Linux C編譯生成的.o文件是二進制可重定位文件,把一些相關的打包成.so(動態庫)或是.a(靜態庫),其實只是簡單的打了一個包,沒有什麼其它復雜處理。如果誰調用了,其中的函數之類的東西,就需要鏈接到這個庫文件或者.o文件,這樣生成二進制可執行文件
㈥ gcc怎麼編譯.o
gcc中-c和-o是編譯時可選的參數
-加-c, (compile)只編譯生成中間同名目標文件,不鏈接
-加-o,(output)指定輸出文件名,該文件為可執行文件,不加-o會默認生成a.out
舉例:
gcc -c hello.c 編譯生成hello.o文件
gcc -o hello hello.c 生成可執行文件hello
㈦ C語言程序編譯後產生哪些類型的文件這些文件的作用是什麼
1、以GCC編譯器為例,可以分為四步。
第一步是預處理,包括語法檢查等工作。
gcc
-P
abc.c
第二步由源程序生產匯編語言代碼。
gcc
-S
abc.c
會生成abc.s文件,這個文件里就是匯編代碼。
第三步編譯器生成目標代碼,一個源文件生成一個目標代碼。
gcc
-c
abc.c
會生成abc.o
第四步連接器從目標代碼生成可執行文件。
gcc
abc.o
2、目標代碼包括機器碼和符號表(函數及變數名)。連接器的主要作用是通過符號表在庫文件和其他模塊中找到在目標代碼中引入或未定義的符號(函數及變數名),將幾個目標代碼合成可執行文件。
㈧ linux gcc編譯好C文件後生成.o目標文件,但是在執行中($./test)出現沒有那個文件或目錄,請大神幫忙。
.o文件是不能被執行的, c的源碼要經過編譯和鏈接才能生成可執行文件,你只是編譯了,沒有鏈接,這個文件相當於Windows下的test.obj而已。gcc -Wall test.c -o test
㈨ 請問:c語言編譯成功後生成後綴名為.o的文件,什麼東東,什麼作用。
是編譯成功後的文件。
以hello.c為例:
先將源文件編譯成目標文件:gcc - c hello.c。生成hello.o文件,再將目標文件編譯成可執行文件:gcc -o hello hello.o
這樣就生成了可執行文件,在./hello就可以運行hello了。
㈩ linux內核編譯 .c如何生成.o文件
gcc -Wall adc.c -o adc.o
或者在makefile中寫下:
adc.o:
gcc -Wall adc.c -o adc.o
然後make,注意adc.o:下面的空格必須用Tab鍵