編譯的作用是
⑴ C語言編輯編譯連接的作用是什麼
C語言編輯的作用是檢查語法,製作C語言的源文件和頭文件,生成匯編代碼。
C語言編輯的作用是將匯編代碼轉換機器碼。在這一步中,會對文件內部的語法語義做處理,如果編譯出錯,無法進行後續動作。
C語言鏈接的作用是將機器碼鏈接到一起生成可執行程序。這一步會對文件之間的關聯做檢查,如果出錯,將不會生成可執行程序,也就無法執行。
(1)編譯的作用是擴展閱讀:
C語言鏈接時,將源文件中用到的庫函數與匯編生成的目標文件.o合並生成可執行文件。該可執行文件會變大很多,一般是調用自己電腦上的靜態庫。
靜態庫和應用程序編譯在一起,在任何情況下都能運行,而動態庫是動態鏈接,文件生效時才會調用。很多代碼編譯通過,鏈接失敗就極有可能在靜態庫和動態庫這出現了紕漏,要視情況解決。缺少相關所需文件,就會鏈接報錯。這個時候就要檢查下本地的鏈接庫是不是缺損。
⑵ 編譯的作用是對源程序進行語法檢查和語義檢查
以C語言為例:首先是編譯預處理,對宏,包含指令,編譯指令等進行處理,然後是詞法語法分析,將源代碼翻譯成中間代碼(一般是匯編),接著優化代碼,這一步比較深奧有興趣可以查查,然後將中間代碼翻譯成機器語言(目標文件),接著鏈接目標文件(因為他們可能互相引用函數等等),最後生成可以執行文件。
⑶ 編譯程序的作用是() A把源程序譯成目標程序 B解釋並執行程序C目標程序譯成源程序D隊員程序進行編譯
答案應該選擇A
首先,需要將你的代碼文件.cpp .h .c .java等文件編譯成相應的目標程序,也就是.o .class文件
這就是編譯過程。
C語言然後會執行鏈接link操作,將生成.o生成.dll 或者.exe文件等
這是鏈接
然後雙擊exe文件,這是程序的執行過程。你說的B中執行程序應該是這個過程。跟編譯差了好遠呢
Java直接通過JVM 對class文件進行解釋,就能夠直接執行
⑷ 簡述一下編譯器和鏈接器的作用
1、編譯器:
編譯器對源文件進行編譯,就是把源文件中的文本形式存在的源代碼翻譯成機器語言形式的目標文件的過程,在這個過程中,編譯器會進行一系列的語法檢查。如果編譯通過,就會把對應的CPP轉換成OBJ文件。
2、鏈接器:
當鏈接器進行鏈接的時候,首先決定各個目標文件在最終可執行文件里的位置。然後訪問所有目標文件的地址重定義表,對其中記錄的地址進行重定向(加上一個偏移量,即該編譯單元在可執行文件上的起始地址)。
然後遍歷所有目標文件的未解決符號表,並且在所有的導出符號表裡查找匹配的符號,並在未解決符號表中所記錄的位置上填寫實現地址。最後把所有的目標文件的內容寫在各自的位置上,再作一些另的工作,就生成一個可執行文件。