c語言編好後生成的 obj格式的有啥用哈

2022-03-09 12:49:59 字數 4357 閱讀 1433

1樓:

樓上幾位應該告訴他留下這東西還的 好處和壞處...

.obj是編譯的結果...

生成二進位制檔案..還需要聯結器對.obj進行鏈結如果用makefile 或者ide的話.

如果你沒有修改你某個模組的** 並且模組對應的obj檔案還存在的話那麼編譯器就不會重新編譯這個檔案...這樣加快編譯的速度..

(當然有些比較菜的ide,是只管檔案有沒有修改,不管存不存在obj檔案的

在這種ide環境下..如果你刪除了.obj檔案.對應的模組沒有修改那麼就壞出現 鏈結是缺少obj檔案的錯誤..

)所以總的來說..obj檔案最好還是保留著..

2樓:桔子香腸

編譯後生成的檔案,用於連線生成exe檔案

這個檔案是不能開啟看到裡面內容的

所以有的公司提供的**為了不讓客戶看到就會採用提供.obj檔案的方式

3樓:

目標檔案,鏈結時與標頭檔案一起組裝成可執行檔案

4樓:

鏈結用的,通過對obj檔案的鏈結生成exe檔案

5樓:

編譯只是生成.obj檔案,還需要經過聯結器把.obj連線成.exe才能執行.

6樓:匿名使用者

obj是首先產生的二進位制檔案,然後再通過obj產生exe檔案。

7樓:匿名使用者

c有編輯,編譯,執行 好像還有個 每個過程生成1個帶字尾的檔案,好像也沒什麼用 ,只有exe檔案能開啟。

c語言為什麼要生成.obj檔案

8樓:

obj檔案 是鏈結以前的 編譯結果。

1個源程式生成1個 obj檔案,1個大程式可以有 若干個 源程式 組成,每個源程式各自產生自己的 obj檔案。然後 通過鏈結,把 obj檔案們 和 庫 檔案們 鏈結成 exe 檔案 (或 dll檔案) .

庫 檔案 實際上也是 obj檔案。

exe 檔案 生成後 obj檔案 可以 刪掉,節省磁碟空間。

9樓:匿名使用者

計算機只能識別0,1組成的2進製的指令,而不能直接識別和執行高階語言寫的命令,為了使計算機能執行高階語言源程式(也就是source program),必須先用一種稱為「編譯程式」的軟體,把源程式翻譯成二進位制形式的「目標程式(也就是object program)」,實際上就是讓機器能識別高階語言。

c語言編譯生成的.obj檔案解釋下

10樓:汽車影老師

c語言編譯生成的.obj檔案是一種文字檔案,程式編譯時生成的中間**檔案目標檔案,一般是程式編譯後的二進位制檔案,再通過鏈結器和資源檔案鏈結就成可執行檔案了。obj只給出了程式的相對位址,而可執行檔案是絕對位址。

obj檔案基本結構:obj檔案不需要任何種檔案頭(file header),儘管經常使用幾行檔案資訊的注釋作為檔案的開頭。

obj檔案由一行行文字組成,注釋行以符號「#」為開頭,空格和空行可以隨意加到檔案中以增加檔案的可讀性。有字的行都由一兩個標記字母也就是關鍵字(keyword)開頭,關鍵字可以說明這一行是什麼樣的資料。

11樓:樂跑小子

obj檔案是鏈結以前的編譯結果。

1個源程式生成1個 obj檔案,1個大程式可以有 若干個 源程式 組成,每個源程式各自產生自己的 obj檔案。然後 通過鏈結,把 obj檔案們 和 庫 檔案們 鏈結成 exe 檔案 (或 dll檔案) .

庫檔案實際上也是 obj檔案。

exe 檔案 生成後 obj檔案 可以 刪掉,節省磁碟空間。

12樓:詭其辭

不是所有情況下.obj檔案的圖示都是那個樣子的哦。

請問:c語言編譯成功後生成字尾名為.o的檔案,什麼東東,什麼作用。 20

13樓:匿名使用者

是編譯成功後的檔案。

以hello.c為例:

先將原始檔編譯成目標檔案:gcc - c hello.c。生成hello.o檔案,再將目標檔案編譯成可執行檔案:gcc -o hello hello.o

這樣就生成了可執行檔案,在./hello就可以執行hello了。

c語言源程式檔名的字尾是.obj,經過編譯後,生成檔案的字尾是什麼?經過連線後,生成檔案的字尾是什麼?

14樓:小夏在深圳

c語言源程式檔名的字尾是.c。c源程式經過c編譯程式編譯之後生成乙個字尾為.obj的二進位制檔案,

然後由稱為「連線程式」的軟體,把此.obj檔案與c語言提供的各種庫函式連線起來生成乙個字尾為.exe的可執行檔案。

由高階語言編寫的程式稱為「源程式」,把由二進位制**表示的程式稱為「目標程式」。為了把源程式轉換成機器能接受的目標程式,這時我們需要具有翻譯功能的軟體--「編譯程式」。每種高階語言都有與它對應的編譯程式。

擴充套件資料

1、目標檔案的擴充套件名為「.obj」(windows)或「.o」(linux)。目標檔案已經是機器指令,但還不能執行,因為目標檔案還沒有解決函式呼叫問題。

2、可執行檔案的擴充套件名為「.exe「。

15樓:知之為知之

c語言源程式檔名的字尾是.c,經過編譯後,生成檔案的字尾是.obj?經過連線後,生成檔案的字尾是.exe?

16樓:匿名使用者

暈!檔案編輯的時候原始碼是.cpp副檔名,c++標頭檔案是.h副檔名

編譯源程式檔案轉換成.obj副檔名的目標檔案

鏈結將乙個或多個目標檔案與程式用到的庫檔案鏈拉起來,形成乙個可以在作業系統直接執行的執行程式.exe

c語言程式編譯後產生哪些型別的檔案?這些檔案的作用是什麼?

17樓:匿名使用者

不同的系統,產生的檔案不一樣;

win:

->.obj目標檔案

->.obj目標檔案     ->.exe可執行檔案->.rc

。。。。

18樓:匿名使用者

編譯後,會產生.dsp檔案,是工程專案檔案

.obj目標檔案

.exe可執行檔案

19樓:匿名使用者

1、以gcc編譯器為例,可以分為四步。

第一步是預處理,包括語法檢查等工作。

gcc -p abc.c

第二步由源回程式生產彙編語答言**。

gcc -s abc.c

會生成abc.s檔案,這個檔案裡就是彙編**。

第三步編譯器生成目標**,乙個原始檔生成乙個目標**。

gcc -c abc.c

會生成abc.o

第四步聯結器從目標**生成可執行檔案。

gcc abc.o

2、目標**包括機器碼和符號表(函式及變數名)。聯結器的主要作用是通過符號表在庫檔案和其他模組中找到在目標**中引入或未定義的符號(函式及變數名),將幾個目標**合成可執行檔案。

c語言程式編好儲存後為什麼會產生這麼多的檔案,它們每個檔案有什麼功能.....

20樓:飛翔的菜菜

.c檔案是你的原始檔,debug是負責將你寫的原始檔變為可執行檔案的,至於其他的,不同的編譯器產生的都不一樣,這個你要學編譯原理才會知道你的.c檔案需要先被link為obj檔案,然後再編譯成exe檔案的,這些檔案不用去理會,知道個大概就行了,就跟你用windows裡面有很多不知所以然的檔案一樣。

一般人不會去計較這些系統檔案的

21樓:

debug 裡面有執行檔案--和**檔案、---說實話我也不知道-就當它是系統檔案好了

c語言編譯連線後生成那麼多檔案是什麼 10

22樓:

不要把儲存目錄設為桌面,應該設定成乙個單獨的資料夾在一開始建立的時候它會問你儲存路徑

一項工程有兩種生成檔案的方式:

一是debug 這種檔案可以方便除錯,可以在具體行中設定斷點,執行時對程式中各種變數進行觀測

二是release 這種檔案只能用來執行,不能用來除錯debug資料夾所佔硬碟儲存空間大,開發過程中一般選擇生成debug檔案

release資料夾占用空間小,最終開放版本給使用者時選擇用這種方式生成

23樓:資料**

書上說的ide是用的gcc編譯器,編譯過程是編譯鏈結執行!其中obj就是連線的時候產生的乙個檔案。而你用的vc和vs是微軟自己獨有的編譯器,兩者不能混為一談!

c語言中輸入格式 輸出格式的組成包括哪些內容

希望被樓主採納!printf 函式是格式化輸出函式,一般用於向標準輸出裝置按規定格式輸出資訊。printf 函式的呼叫格式為 printf 格式化字串 參量表 其中格式化字串包括兩部分內容 一部分是正常字元,這些字元將按原樣輸出 另一部分是格式化規定字元,以 開始,後跟一個或幾個規定字元,用來確定輸...

用vc6怎樣生成c語言的可執行檔案

是的,改名,或者新建檔案的時候 檔名明確的寫.c就可以了 隨便寫個.c檔案裡 當然是在工程裡的 按f7 或者選單裡選 build visul c 6.0執行c程式,要 源建乙個正確的工程,然後建立乙個正確的文字文件,然後執行。個空工程,再新建乙個.cpp的程式zhi,在命名時直接dao命為 c即可。...

C語言for的多重迴圈C語言for的多重迴圈是怎麼一回事啊能給小弟詳細講解以下嗎

舉例子有點難,要不直接講一下。首先,定義迴圈,將i的起始值設為1,迴圈條件為i 10 也就是i的尾值為9 然後在內部定義巢狀迴圈,將j的起始值設為1,迴圈條件為j i 這是全迴圈裡最難理解的,這個巢狀迴圈尾值是i當時的值,比如當時i的值為8,那麼j將會從1執行到8 所以執行順序可以這樣理解 1,確定...