程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> c++-C++ 編譯器怎麼找到main

c++-C++ 編譯器怎麼找到main

編輯:編程綜合問答
C++ 編譯器怎麼找到main

一個程序裡面有很多頭文件h和源文件cpp,
然後程序運行時候必須從main函數開始運行,
但是編譯時候編譯器是怎麼找到main函數呢,
編譯器怎麼知道main函數在哪個文件裡呢

最佳回答:


每個 obj,lib ,文件裡面 都有各種符號信息,特別是重定位表。
如果一個文件沒有定義 main
那麼他的表裡要麼指出需要一個main
要麼沒有任何main函數的信息。

實際上,系統庫的某個部分。需要調用 main函數,
所以它會指出這是個外部函數,不在本模塊定義,
需要有一個模塊定義了它

而你的程序中的某個cpp定義了main
編譯後,這個模塊的表裡會告訴連接器,這裡定義了main 這個函數。
連接器,會匯總所有模塊的信息,找到定義main的模塊。
從而鏈接上main這個函數,用main的地址替代
call _main 指令生成的二進制代碼的地址部分,完成鏈接。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved