導航:首頁 > 源碼編譯 > 編譯鏈接有什麼區別

編譯鏈接有什麼區別

發布時間:2023-05-31 10:43:57

編譯和鏈接的區別是什麼

編譯 源文件 -> 機器碼
鏈接 機器碼 -> 可執行文件

在GNU/Linux系統下:
編譯: .c -> .o
鏈接: .o .o .o -> a.out

具體的可以看gcc的相關文檔。

這個可以參考:
http://www.network-theory.co.uk/docs/gccintro/gccintro_82.html

㈡ 用C語言編的程序,要生成可執行文件的時候,要編譯、鏈接,編譯是什麼意思啊鏈接是什麼意思編譯和鏈接

編譯就是把C代碼轉換成CPU可執行的機器指令,每個.c文件生成一個.obj文件。
鏈接就是把生成的(多個) .obj 文件及用到的庫文件(.lib)一起組合生成可執行文件(.exe)。

㈢ VC中編譯與連接有什麼區別

要連接要先編譯,如果沒編譯會連接時會自動編譯。舉個例子,如果你有兩個文件,對一個文件進行編譯只是講這個文件編譯成了目標文件.obj,但是另外一個文件沒有,需對另外一個文件進行編譯,可以觀察結果輸出框的顯示,這時連接便會將兩個文件連接在一起,才會將互相調用的函數等聯系起來,生成.exe。如果不編譯直接點連接,系統自動將兩個文件編譯,並連接,生成.exe文件。
假設兩個文件分別是a.cpp,b.cpp,a調用b的函數:
編譯a:
--------------------Configuration: a - Win32 Debug--------------------
Compiling...
a.cpp

a.obj - 0 error(s), 0 warning(s)
然後編譯b:
--------------------Configuration: a - Win32 Debug--------------------
Compiling...
b.cpp

b.obj - 0 error(s), 0 warning(s)
然後連接:
--------------------Configuration: a - Win32 Debug--------------------
Linking...

a.exe - 0 error(s), 0 warning(s)

假如編譯一個後直接連接:
編譯a:無變化
--------------------Configuration: a - Win32 Debug--------------------
Compiling...
a.cpp

a.obj - 0 error(s), 0 warning(s)
直接連接:
--------------------Configuration: a - Win32 Debug--------------------
Compiling...
b.cpp
Linking...

a.exe - 0 error(s), 0 warning(s)

如果兩個都不編譯,直接點連接:
--------------------Configuration: a - Win32 Debug--------------------
Compiling...
a.cpp
b.cpp
Linking...

a.exe - 0 error(s), 0 warning(s)
注意:假如文件沒有被修改的話,編譯一次後不會再進行編譯了,可以直接連接,如果這時不編譯,直接點連接,也只是連接,沒有編譯過程。
編譯.h文件會提示不能編譯,因為.h一般存放的是函數的聲明,類的定義等,系統不會編譯,但是可以在頭文件中點連接進行整個程序的編譯連接過程。
連接後就可以運行了,也可以在沒編譯、連接時點運行,系統會自動編譯、連接。

㈣ 編譯和鏈接的區別是()

編褲攔差譯和鏈接的區別是?()

A.編譯產生物理地址,鏈接產生衡讓邏輯地址

B.編譯產生邏輯地址,鏈接產生物理胡皮地址

C.編譯產生一個文件的邏輯地址,鏈接產生一個段的邏輯地址

D.編譯產生一個段的邏輯地址,鏈接產生一個文件的邏輯地址

正確答案:編譯產生一個段的邏輯地址,鏈接產生一個文件的邏輯地址

㈤ c語言中的編輯,編譯,連接,運行分別是什麼意思

1、編輯:編寫代碼,製作C語言的源文件。

2、編譯:是由編譯程序將C語言源文件轉換成二進制中間文件,對文件內部的語法語義做處理,如果編譯出錯,無法進行後續動作。

3、鏈接:將編譯中生成的中間文件組合成二進制可執知行文件,這一步會對文件之間的關聯做檢查,如果出錯,將不會生成可執行文件,也就無法執行。

4、執行:運行可執行文件,這一步道是編寫代碼的最終目的。

(5)編譯鏈接有什麼區別擴展閱讀:

DOS命令通常分為三類:內部命令、外部命令和批處理命令。

1、內部命令:

其包含在命令解釋程序COMMAND.COM中,一旦啟動DOS,這些命令就被調入內存,只要在DOS系統提示符下輸入這些命令,就可立即執行。

2、外部命令:

其以文件的形式存儲在系統盤上,所帶擴展名為COM和EXE。DOS啟動時,它們並沒有被調入內存,執行前必須從系統盤讀進內存。因此輸入外部命令時,要了解該命令是否在當前盤上,不然DOS無法找到它們。

3、批處理命令:

實際上是個文件,該文件包含多條命令,當用戶鍵入批處理文件名時,DOS將順序執行其中的各條命令。注意,批處理命令必須用「.BAT」作為擴展名。

C語言的運算非常靈活,功能十分豐富,運算種類遠多於其它程序設計語言。在表達式方面較其它程序語言更為簡潔,如自加、自減、逗號運算和三目運算使表達式更為簡單。

當多種不同運算組成一個運算表達式,即一個運算式中出現多種運算符時,運算的優先順序和結合規則就會顯得十分重要。

網路-運行命令

網路-C語言

㈥ 什麼叫編譯,什麼又叫鏈接

編譯就是將源程序翻譯為機器代碼,機器代碼一般以*.obj文件保存。
鏈接就是將上一步產生的obj文件與操作系統動態庫組合為可執行的exe文件。

㈦ 編譯、鏈接和交叉鏈接的區別與聯系

1、鏈接是將目標代碼與其他對象文件(例如庫文件)合並成單個可執行文件的過程。在鏈接納運過程中,符號解析和地址重差茄旦定向等操作被執行。
2、虛擾交叉鏈接是指將不同的目標文件和庫文件進行鏈接,以生成適用於特定平台或操作系統的可執行文件。它通常用於開發跨平台應用程序。

㈧ 請問c++問題 編譯錯誤 與 鏈接錯誤有什麼區別

編譯錯誤是代碼有錯誤;
鏈接錯誤是由於程序缺少必要的庫文件,一般錯誤提示error LINK2001:無法解析的外部符號。

閱讀全文

與編譯鏈接有什麼區別相關的資料

熱點內容
新概念英語第三冊pdf 瀏覽:401
分項詳細估演算法步驟 瀏覽:436
ipad桌面文件夾放大 瀏覽:891
我的世界基岩版怎麼進國際伺服器 瀏覽:516
福州醫院有沒有解壓艙 瀏覽:470
帶pwm的51單片機 瀏覽:916
ace程序員指南源碼 瀏覽:414
哪個app可以分36期還款 瀏覽:243
為什麼安卓軟體平台那麼多 瀏覽:286
如果把伺服器切斷了怎麼辦 瀏覽:17
app建立網站需要什麼技術 瀏覽:689
迷你世界教你開雲伺服器 瀏覽:560
鋁窗下料用什麼app 瀏覽:842
天堂伺服器怎麼進 瀏覽:386
程序員汽車號碼 瀏覽:462
飛度空調壓縮機可以換大嗎 瀏覽:337
紫色系解壓視頻教程 瀏覽:360
與門單片機 瀏覽:714
正規的重慶移動伺服器租用雲主機 瀏覽:73
php清除所有session 瀏覽:728