編譯器匯編器連接器
⑴ 編譯器跟編輯器有什麼區別。還有什麼是鏈接器
鏈接器(Linker)是一個程序,將一個或多個由編譯器或匯編器生成的目標文件外加庫鏈接為一個可執行文件。
是軟體程序,一般是指用來修改電腦檔案的編寫軟體,但也有人稱 PE2、HE4(漢書)……等文書軟體為編輯器。常見的編輯器有文本編輯器、網頁編輯器、源程序編輯器、圖像編輯器,聲音編輯器,視頻編輯器等。
簡單講,編譯器就是將「一種語言(通常為高級語言)」翻譯為「另一種語言(通常為低級語言)」的程序。一個現代編譯器的主要工作流程:源代碼 (source code) → 預處理器 (preprocessor) → 編譯器 (compiler) → 目標代碼 (object code) → 鏈接器 (Linker) → 可執行程序 (executables)
⑵ 編譯軟體具體是什麼啊為屬於系統軟體啊
編譯軟體為匯編語言匯編器,例如C語言編譯、連接器等等。
一般來講,系統軟體包括操作系統和一系列基本的工具(比如編譯器,資料庫管理,存儲器格式化,文件系統管理,用戶身份驗證,驅動管理,網路連接等方面的工具),是支持計算機系統正常運行並實現用戶操作的那部分軟體。
有代表性的系統軟體:操作系統,語言處理程序(如編譯軟體),資料庫管理,輔助程序。
(2)編譯器匯編器連接器擴展閱讀:
語言處理程序:
編譯軟體CPU執行每一條指令都只完成一項十分簡單的操作,一個系統軟體或應用軟體,要由成千上萬甚至上億條指令組合而成。直接用基本指令來編寫軟體,是一件極其繁重而艱難的工作。
計算機只能直接識別和執行機器語言,因此要計算機上運行高級語言程序就必須配備程序語言翻譯程序,翻譯程序本身是一組程序,不同的高級語言都有相應的翻譯程序。
語言處理程序如匯編語言匯編器,C語言編譯、連接器等。
為了提高效率,人們規定一套新的指令,稱為高級語言,其中每一條指令完成一項操作,這種操作相對於軟體總的功能而言是簡單而基本的,而相對於CPU的一眇操作而言又是復雜的。用這種高級語言來編寫程序(稱為源程序)就象用預制板代替磚塊來造房子,效率要高得多。
但CPU並不能直接執行這些新的指令,需要編寫一個軟體,專門用來將源程序中的每條指令翻譯成一系列CPU能接受的基本指令(也稱機器語言)使源程序轉化成能在計算機上運行的程序。完成這種翻譯的軟體稱為高級語言編譯軟體,通常把它們歸入系統軟體。
目前常用的高級語言有VB、C++、JAVA等,它們各有特點,分別適用於編寫某一類型的程序,它們都有各自的編譯軟體。
參考資料:網路——系統軟體
⑶ 簡述一下編譯器和鏈接器的作用
1、編譯器:
編譯器對源文件進行編譯,就是把源文件中的文本形式存在的源代碼翻譯成機器語言形式的目標文件的過程,在這個過程中,編譯器會進行一系列的語法檢查。如果編譯通過,就會把對應的CPP轉換成OBJ文件。
2、鏈接器:
當鏈接器進行鏈接的時候,首先決定各個目標文件在最終可執行文件里的位置。然後訪問所有目標文件的地址重定義表,對其中記錄的地址進行重定向(加上一個偏移量,即該編譯單元在可執行文件上的起始地址)。
然後遍歷所有目標文件的未解決符號表,並且在所有的導出符號表裡查找匹配的符號,並在未解決符號表中所記錄的位置上填寫實現地址。最後把所有的目標文件的內容寫在各自的位置上,再作一些另的工作,就生成一個可執行文件。
⑷ 匯編器、編譯器、編輯器
有鏈接器,編輯器,編譯器.
GCC的話就是把 先把源文件預處理成純C的文件,編譯器把純C文件轉換成匯編程序,匯編器再把匯編程序變成 目標文件. 連接器 去鏈接庫文件,然後生成可執行文件... ...
其實編譯器,沒有什麼功能,就和文本 TXT一樣,只不過多了一些語法高亮功能.
純C文件,說白了,就是去掉一些沒有的東西,比如注釋,還有一些用不到的東西.
然後純C文件變成匯編的代碼,
⑸ 源代碼到可執行 文件之間的轉換用到的 編譯器如gcc、匯編器、連接器等是怎麼集成到IDE環境中的
在VisualC 2005中,如何調用其它編譯器編譯cpp文件呢?換句話說,如何把其它編譯器集成到VC2005的IDE中呢?
象ICC這樣的編譯器安裝之後會自動集成進來,要集成其他編譯器那還得自己動手。下面介紹一種簡單、淺層的「集成」方法。
你也許注意到了,在VC2005的IDE中是不能編譯單個.cpp文件的,除非把它放在工程中。但是,我們可以通過調用外部工具實現編譯單文件。
下面以調用G 為例說明如何編譯單個.cpp文件。如果要編譯單個.c文件,使用GCC即可,方法同理。
也許你現在還不知道G 。G 是GCC中的一員。GCC的含義是GNU編譯器集合(GNUCompilerCollection),包括C、C 、Objective-C、Fortran、Java、Ada連同與這些語言相配的庫等。GCC被譽為「世界上最重要的軟體」。許多免費的編譯器都是GCC的移植版—MinGW(MinimalistGNUforWindows)中攜帶的編譯器就是如此。
以MinGW為例,我們可以下載DevC ,DevC 目前最新版為4.9.9.2。安裝DevC 的同時就安裝了MinGW,其中包含了G 3.4.2.
假設DevC 安裝在D:\Dev-Cpp目錄下。
下面我們在VC2005的菜單點擊「工具(Tools)->外部工具(ExternalTools)->添加(Add)」。
分別填入:
標題(Title):GNUC Compiler
命令(Command):D:\Dev-Cpp\bin\g .exe
參數(Arguments):-Wall-o$(ItemFileName)$(ItemFileName)$(ItemExt)-time
初始目錄(Initialdirectory):$(ItemDir)
再鉤選下面的"使用輸出窗口(UseOutputwindow)".
說明:如果你已經把D:\Dev-Cpp\bin\目錄添加到系統環境變數中,那麼Command指定為g .exe即可。Cygwin同理。
這些參數只是一個參考。你可以查閱VC編譯器的宏設置你需要的參數。
乾脆順帶補充一下DigitalMarsC 編譯器的參考參數設置:
標題(Title):DigitalMars
命令(Command):C:\dm\bin\dmc.exe
參數(Arguments):$(ItemFileName)$(ItemFileName)$(ItemExt)
初始目錄(Initialdirectory):$(ItemDir)
好,下面切換到main函數所在文件,點擊工具(Tools)菜單下的「GNUC Compiler」開始編譯。
注意g 此時編譯的指是純C 程序,對於包含int_tmain(intargc,_TCHAR*argv[])這類VC特有的C 程序自然是無法通過編譯的。
如果編譯沒有出錯,對於早期版本的g 而言,Outputwindow是沒有任何輸出的。
而對於較新版本的g ,將輸出類似以下的信息:
#cc1plus0.670.22
#as0.050.01
#collect20.360.19
這是-time報告的編譯過程中每個子過程所佔用的CPU時間。
當然,你還可以更改編譯參數,使輸出窗口輸出其他編譯信息。
我們還可以通過添加外部工具來實現運行g 生成的程序的功能。步驟如下:
在VC2005的菜單點擊「工具(Tools)->外部工具(ExternalTools)->添加(Add)」。
分別填入:
標題(Title):RunasC Application
命令(Command):%systemroot%\system32\cmd.exe
參數(Arguments):/c$(ItemFileName).exe
初始目錄(Initialdirectory):$(ItemDir)
不要鉤選下面的「使用輸出窗口」和「退出時關閉」。
注意:cpp文件必須放在工程中,g 生成的程序才能被運行!
用MinGW的g 編譯出的程序可以在沒有安裝MinGW的Windows系統上運行!
但是在Cygwin/gcc下編譯出來的程序,在windows執行必須依賴cygwin1.dll。
通過VC2005創建不帶預編譯頭的Win32控制台應用程序空環境,這樣編譯出來的可執行文件也不是放在哪台機子都能跑的。但是常規空環境可以做到。
下面講講如何設置快捷鍵。
點擊菜單中的"工具->自定義",
點擊右下角的"鍵盤",
點擊"按快捷鍵"下面的文本框,
按下Shift Ctrl F7,如果這個快捷鍵已經分配給了其他的命令,更換一個即可。
⑹ 匯編器和編譯器有什麼區別
匯編器(Assembler)是將匯編語言翻譯為機器語言的程序。一般而言,匯編生成的是目標代碼,需要經鏈接器(Linker)生成可執行代碼才可以執行。
匯編語言是一種以處理器指令系統為基礎的低級語言,採用助記符表達指令操作碼,採用標識符表示指令操作數。作為一門語言,對應於高級語言的編譯器,需要一個「匯編器」來把匯編語言原文件匯編成機器可執行的代碼。常用的高級語言編譯器有Microsoft公司的MASM系列和Borland公司的TASM系列編譯器,還有一些小公司推出的或者免費的匯編軟體包等。
編譯器就是將「一種語言(通常為高級語言)」翻譯為「另一種語言(通常為低級語言)」的程序。一個現代編譯器的主要工作流程:源代碼 (source code) → 預處理器 (preprocessor) → 編譯器 (compiler) → 目標代碼 (object code) → 鏈接器(Linker) → 可執行程序 (executables)
高級計算機語言便於人編寫,閱讀交流,維護。機器語言是計算機能直接解讀、運行的。編譯器將匯編或高級計算機語言源程序(Source program)作為輸入,翻譯成目標語言(Target language)機器代碼的等價程序。源代碼一般為高級語言 (High-level language), 如Pascal、C、C++、Java、漢語編程等或匯編語言,而目標則是機器語言的目標代碼(Object code),有時也稱作機器代碼(Machine code)。
對於C#、VB等高級語言而言,此時編譯器完成的功能是把源碼(SourceCode)編譯成通用中間語言(MSIL/CIL)的位元組碼(ByteCode)。最後運行的時候通過通用語言運行庫的轉換,編程最終可以被CPU直接計算的機器碼(NativeCode)
⑺ dsp 匯編器與鏈接器
編譯器將原代碼c或c++編譯成匯編asm文件,匯編器將asm文件匯編為目標文件obj(二進制文件),連接器將obj和lib等連接為最後的out文件(二進制)
⑻ 電腦里自帶匯編編譯器和連接器嗎
好像沒有,需要自己下載
dos下用masm5.0 link.exe
網上很多的
⑼ 編譯器構造原理
編譯器,是將便於人編寫,閱讀,維護的高級計算機語言翻譯為計算機能識別,運行的低級機器語言的程序。
編譯器將源程序作為輸入,翻譯產生使用目標語言的等價程序。源程序一般為高級語言,如C++等,而目標語言則是匯編語言或目標機器的目標代碼,有時也稱作機器代碼。
一個現代編譯器的主要工作流程如下:
源代碼→預處理器→編譯器→匯編程序→目標代碼→連接器→可執行程序
⑽ 英語編譯程序怎麼翻譯
編譯程序一般翻譯為compiler。
實際上在整個編譯過程中會用到很多的工具,預處理器、編譯器、匯編器、定位/分配器、連接器。