㈠ 我在學c語言,編譯好了hello world程序,不知怎麼鏈接。
vc自帶都有,直接點執行就可以了。
㈡ C語言編譯鏈接的具體步驟
編譯產生.obj文件,連接產生.exe,其他有點輔助功能吧,比如頭文件,宏定義什麼的實現一下
㈢ C語言的編譯、鏈接、載入、運行全過程
C語言的編譯、鏈接、載入、
㈣ C語言編譯怎樣連接lib文件,請講解連接的原理,
廣義的代碼編譯過程,實際上應該細分為:預處理,編譯,匯編,鏈接。
預處理過程,負責頭文件展開,宏替換,條件編譯的選擇,刪除注釋等工作。gcc –E表示進行預處理。
編譯過程,負載將預處理生成的文件,經過詞法分析,語法分析,語義分析及優化後生成匯編文件。gcc –S表示進行編譯。
匯編,是將匯編代碼轉換為機器可執行指令的過程。通過使用gcc –C或者as命令完成。
鏈接,負載根據目標文件及所需的庫文件產生最終的可執行文件。鏈接主要解決了模塊間的相互引用的問題,分為地址和空間分配,符號解析和重定位幾個步驟。實
際上在編譯階段生成目標文件時,會暫時擱置那些外部引用,而這些外部引用就是在鏈接時進行確定的。鏈接器在鏈接時,會根據符號名稱去相應模塊中尋找對應符
號。待符號確定之後,鏈接器會重寫之前那些未確定的符號的地址,這個過程就是重定位。
㈤ c語言裡面的編譯和鏈接是怎麼回事啊
C/C++語言的完整編譯過程是
一、預編譯
處理#define #if #include這類#開頭的語句,這些稱為預編譯指令。這個過程中會把.h文件和.c/.cpp文件組合成最終交給compile過程的原文件。這個原文件是不包含任何#開頭的語句的。所有#define定義的宏也會被替換。
二、編譯
把上面那個原文件編譯成.o或者VC里是.obj文件。這個文件保存了機器碼化的函數、函數的描述、全局變數的描述、乃至段的描述等等。
三、連接
把可執行程序需要的所有的編譯過程產生的.o或者.obj文件組合到一起。(這里也包括.lib文件,.lib文件件本質上就是打包的.obj文件集合)。另外連接過程還會組合一些其他數據,比如資源、可執行文件頭等等。
㈥ 問個C語言的編譯鏈接問題
頭文件是用來說明函數介面和數據結構的,不是靜態鏈接庫。
靜態庫(在windows下是lib文件,linux下是.a文件)和動態庫(windows下是dll文件,linux下是.so文件)是庫文件的兩種形式,都是在鏈接階段完成;區別在於靜態庫在鏈接時和應用程序打包在了一起,動態庫只是做了一些指向修改的事情,待到應用程序實際執行時,才載入該動態庫到內存。
可以看一下「程序員的自我修養」這本書
㈦ 有c語言問題 輸入程序後不知道如何編譯 鏈接 運行
要先說你用的什麼編譯器:VC++,C++Builder,Code::Blocks,Eclipse,Dev-C++,TC,還是其他的?編譯、鏈接、運行時依賴編譯器的。你寫程序用的是編輯器。
你的懸賞是零分,怎麼萬分感謝,呵呵
㈧ C語言編譯好後怎麼鏈接
在絕大多數C/C++的集成開發環境(如VC6、VS、TC、QT)中,編譯和鏈接都可以通過一個按鍵解決。以VC6為例,你可以通過build按鈕(快捷鍵F7)一步完成編譯和鏈接,當然你也可以先編譯(compile 快捷鍵Ctrl+F7),後點擊build按鈕,效果是一樣的。
編譯和鏈接,其實就是編譯型編程語言(解釋性編程沒有這個步驟)的生成可執行文件的兩個步驟。
編譯,是為了將源代碼生成目標文件(也叫中間文件);鏈接,是將目標文件生成最終的可執行文件。
通常,在命令行編譯模式下,你都需要執行兩個命令來分別完成編譯和鏈接,但在集成開發環境中,這不是必要的,完全可以一鍵完成。
之所以分兩步,主要的設計目的,就是用不同的連接器可以生成在不同平台和不同環境下使用的可執行文件。但這個在同一個圖形化的IDE界面中並沒有什麼意義。
㈨ C語言怎樣把兩個文件連接起來成為一個文件來編譯執行
1、請使用預編譯指令 #include。
2、#include放在代碼文件頭,用於告訴編譯器,文件中包含的頭文件,屬於預處理文件的一部分 。 語法為:
#include <iostream.h> (這句是程序編譯時搜索系統目錄文件)
#include 「HName.h" (這句是程序編譯時搜索當前項目的文件)
㈩ c語言和匯編語言混合之和如何編譯連接
如果你是想在一個文件里混寫c語言和arm匯編,這個跟編譯器有關系,如果你用gcc,可以用__asm__語法,請自行搜索__asm__相關資料
另一種方法,就是arm匯編文件和c語言文件分開來寫,在c語言中聲明函數符號即可。然後分別編譯後再用鏈接器鏈到一起
請參考