最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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ó)家法律
宜良县| 昂仁县| 宁津县| 平利县| 瑞昌市| 大同市| 临安市| 彩票| 饶河县| 体育| 舒兰市| 乌审旗| 云梦县| 恩平市| 隆化县| 读书| 峡江县| 雷波县| 上蔡县| 岫岩| 南郑县| 秦皇岛市| 永寿县| 松原市| 乐至县| 准格尔旗| 南澳县| 峨山| 宁波市| 岱山县| 衡东县| 伊川县| 仙游县| 丘北县| 临潭县| 海林市| 图木舒克市| 邛崃市| 萨迦县| 九龙城区| 安达市|