无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

HelloWorld背后的故事!在運(yùn)行exe可執(zhí)行文件前到底發(fā)生了什么?

2020-03-30 22:12 作者:C語(yǔ)言編程__Plus  | 我要投稿

人物介紹

故事簡(jiǎn)介

編寫源文件 → 預(yù)編譯 →編譯 →匯編 →?鏈接

一、編寫源文件

??源代碼:

二、預(yù)編譯

預(yù)編譯輸入命令g++ -o HelloWorld.i -E HelloWorld.cpp

??該命令表示編譯環(huán)節(jié)的第一步,也就是預(yù)編譯!當(dāng)然,這一步也可以被稱為“編譯預(yù)處理”!而這個(gè) HelloWorld.i 即是預(yù)編譯過(guò)后的文件!

序號(hào)主要行為

值得注意:這一步不會(huì)做出任何安全性和合法性的檢查!

三、編譯

編譯請(qǐng)輸入命令g++ -o HelloWorld.s -S HelloWorld.i

??該命令表示編譯過(guò)程,也就是生成相應(yīng)的匯編文件 HelloWorld.s 。

補(bǔ)充說(shuō)明:其中語(yǔ)義分析又可以分為“靜態(tài)語(yǔ)義分析”和“動(dòng)態(tài)語(yǔ)義分析”兩種。

四、匯編

? ? ? ?匯編請(qǐng)輸入命令:g++ -o HelloWorld.o -C HelloWorld.s

??該命令表示對(duì) HelloWorld.s 文件進(jìn)行匯編處理,生成對(duì)應(yīng)的可重定位的二進(jìn)制文件 HelloWorld.o ,也就是我們所熟知的機(jī)器語(yǔ)言對(duì)應(yīng)的文件。

五、鏈接

? ? ? ?鏈接請(qǐng)輸入命令:g++ HelloWorld.cpp -o HelloWorld.exe

??通過(guò)調(diào)用鏈接器ld來(lái)鏈接程序運(yùn)行需要的一大堆目標(biāo)文件,以及所依賴的其它庫(kù)文件,最后生成可執(zhí)行文件., 鏈接的主要內(nèi)容是把各個(gè)模塊之間相互引用的部分處理好,使得各個(gè)模塊之間能夠正確地銜接。

需要指出:鏈接分為“靜態(tài)鏈接”和“動(dòng)態(tài)鏈接”。

需要補(bǔ)充:

額外說(shuō)明:

相冊(cè)

預(yù)編譯后的文件HelloWorld.i

??可以看到,代碼量驚人的大!足足有兩萬(wàn)多行!可想這個(gè)HelloWorld也不簡(jiǎn)單?。?/p>

編譯后的文件HelloWorld.s

??很明顯看出,此時(shí)代碼精簡(jiǎn)了很多!

匯編后的文件HelloWorld.o

??可以看出,記事本已經(jīng)顯示亂碼了!

幫忙的朋友

文章就到這里了,謝謝閱讀!希望你能重新認(rèn)識(shí)編程哦~

關(guān)注UP,了解更多C/C++小知識(shí)~

歡迎評(píng)論、點(diǎn)贊、收藏、投幣、轉(zhuǎn)發(fā)

HelloWorld背后的故事!在運(yùn)行exe可執(zhí)行文件前到底發(fā)生了什么?的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
留坝县| 广安市| 姜堰市| 崇文区| 三门峡市| 弥渡县| 广德县| 瑞丽市| 陆良县| 新河县| 永修县| 铜陵市| 舒兰市| 化德县| 霸州市| 西城区| 株洲市| 新化县| 寻甸| 兴安县| 登封市| 兖州市| 涡阳县| 民和| 大埔区| 阜康市| 二连浩特市| 凯里市| 蒙自县| 汝城县| 双鸭山市| 伽师县| 珠海市| 色达县| 景谷| 永平县| 博湖县| 沿河| 封开县| 祁阳县| 紫金县|