欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

編程編譯時生成的obj文件和exe文件本質上有什么區別

劉柏宏2年前27瀏覽0評論

編程編譯時生成的obj文件和exe文件本質上有什么區別?

本質上都是2進制代碼,但是obj沒有經過鏈接的重定位,不是可執行的代碼。

而且一個obj對應一個cpp編譯單元,里面的外部符號都沒解析出來。

比如a.cpp通過b.h使用了一個b.cpp里定義的函數func();那么a.cpp生成的obj里面只會有func()這個函數名的調用而已,也就是一個(對a.obj來說的)外部符號。

只有經過鏈接成為了.exe,相應于a.obj里面的func()的調用才會更新成實際的b.obj里面的func()的實際地址。

對全局變量也是同樣的道理。

java 調取exe,編程編譯時生成的obj文件和exe文件本質上有什么區別