導航:首頁 > 源碼編譯 > mfc編譯器載入符號

mfc編譯器載入符號

發布時間:2023-07-31 16:25:38

1. MFC源代碼是如何鏈接到程序中的

1. 預處理
預處理相當於根據預處理指令組裝新的C/C++程序。經過預處理,會產生一個沒有宏定義,沒有條件編譯指令,沒有特殊符號的輸出文件,這個文件的含義同原本的文件無異,只是內容上有所不同。
讀取C/C++源程序,對其中的偽指令(以#開頭的指令)進行處理
①將所有的「#define」刪除,並且展開所有的宏定義
②處理所有的條件編譯指令,如:「#if」、「#ifdef」、「#elif」、「#else」、「endif」等。這些偽指令的引入使得程序員可以通過定義不同的宏來決定編譯程序對哪些代碼進行處理。預編譯程序將根據有關的文件,將那些不必要的代碼過濾掉。
③處理「#include」預編譯指令,將被包含的文件插入到該預編譯指令的位置。
(注意:這個過程可能是遞歸進行的,也就是說被包含的文件可能還包含其他文件)
刪除所有的注釋
添加行號和文件名標識。
以便於編譯時編譯器產生調試用的行號信息及用於編譯時產生的編譯錯誤或警告時能夠顯示行號
保留所有的#pragma編譯器指令
2. 編譯
將預處理完的文件進行一系列詞法分析、語法分析、語義分析及優化後,產生相應的匯編代碼文件。
3. 匯編
將編譯完的匯編代碼文件翻譯成機器指令,並生成可重定位目標程序的.o文件,該文件為二進制文件,位元組編碼是機器指令。
匯編器是將匯編代碼轉變成機器可以執行的指令,每一個匯編語句幾乎都對應一條機器指令。所以匯編器的匯編過程相對於編譯器來講比較簡單,它沒有復雜的語法,也沒有語義,也不需要做指令優化,只是根據匯編指令和機器指令的對照表一一翻譯即可。
4. 鏈接
通過鏈接器將一個個目標文件(或許還會有庫文件)鏈接在一起生成一個完整的可執行程序。
由匯編程序生成的目標文件並不能立即就被執行,其中可能還有許多沒有解決的問題。
例如,某個源文件中的函數可能引用了另一個源文件中定義的某個符號(如變數或者函數調用等);在程序中可能調用了某個庫文件中的函數,等等。所有的這些問題,都需要經鏈接程序的處理方能得以解決。
鏈接程序的主要工作就是將有關的目標文件彼此相連接,也就是將在一個文件中引用的符號同該符號在另外一個文件中的定義連接起來,使得所有的這些目標文件成為一個能夠被操作系統裝入執行的統一整體。
至此,大致經過這幾個步驟,一個完整的可執行程序產生了。

閱讀全文

與mfc編譯器載入符號相關的資料

熱點內容
卡爾曼濾波演算法書籍 瀏覽:761
安卓手機怎麼用愛思助手傳文件進蘋果手機上 瀏覽:837
安卓怎麼下載60秒生存 瀏覽:795
外向式文件夾 瀏覽:228
dospdf 瀏覽:424
怎麼修改騰訊雲伺服器ip 瀏覽:380
pdftoeps 瀏覽:485
為什麼鴻蒙那麼像安卓 瀏覽:730
安卓手機怎麼拍自媒體視頻 瀏覽:180
單片機各個中斷的初始化 瀏覽:716
python怎麼集合元素 瀏覽:475
python逐條解讀 瀏覽:826
基於單片機的濕度控制 瀏覽:492
ios如何使用安卓的帳號 瀏覽:877
程序員公園采訪 瀏覽:805
程序員實戰教程要多長時間 瀏覽:968
企業數據加密技巧 瀏覽:128
租雲伺服器開發 瀏覽:807
程序員告白媽媽不同意 瀏覽:330
攻城掠地怎麼查看伺服器 瀏覽:595