真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

項(xiàng)目發(fā)布Debug版和Release版的區(qū)別有哪些-創(chuàng)新互聯(lián)

本篇文章為大家展示了項(xiàng)目發(fā)布Debug版和Release版的區(qū)別有哪些,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過(guò)這篇文章的詳細(xì)介紹希望你能有所收獲。

創(chuàng)新互聯(lián)建站主營(yíng)江永網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,重慶APP開(kāi)發(fā),江永h5重慶小程序開(kāi)發(fā)搭建,江永網(wǎng)站營(yíng)銷推廣歡迎江永等地區(qū)企業(yè)咨詢

一、Debug和Release的區(qū)別

Debug:調(diào)試版本,包含調(diào)試信息,所以容量比Release大很多,并且不進(jìn)行任何優(yōu)化(優(yōu)化會(huì)使調(diào)試復(fù)雜化,因?yàn)樵创a和生成的指令間關(guān)系會(huì)更復(fù)雜),便于程序員調(diào)試。Debug模式下生成兩個(gè)文件,除了.exe或.dll文件外,還有一個(gè).pdb文件,該文件記錄了代碼中斷點(diǎn)等調(diào)試信息

Release:發(fā)布版本,不對(duì)源代碼進(jìn)行調(diào)試,編譯時(shí)對(duì)應(yīng)用程序的速度進(jìn)行優(yōu)化,使得程序在代碼大小和運(yùn)行速度上都是最優(yōu)的。(調(diào)試信息可在單獨(dú)的PDB文件中生成)。Release模式下生成一個(gè)文件.exe或.dll文件 

二、Obj文件夾的作用

obj目錄中也有debug和release兩個(gè)子目錄,obj目錄是項(xiàng)目生成dll的源目錄,然后將生成好的dll復(fù)制到bin目錄下。obj用于存放編譯過(guò)程中生成的中間臨時(shí)文件。在.Net中,編譯時(shí)分模塊進(jìn)行的,每個(gè)模塊的編譯結(jié)果都保存在obj目錄下,最后會(huì)合并為一個(gè).exe或則.dll文件保存到bin目錄下。

因?yàn)槊看尉幾g都是增量編譯,也就是只重新編譯改變了的模塊,所以這個(gè)obj目錄的作用就是保存這些小塊的編譯結(jié)果,加快編譯速度。 

三、Debug 和 Release 編譯方式的本質(zhì)區(qū)別

Debug 通常稱為調(diào)試版本,它包含調(diào)試信息,并且不作任何優(yōu)化,便于程序員調(diào)試程序。Release 稱為發(fā)布版本,它往往是進(jìn)行了各種優(yōu)化,使得程序在代碼大小和運(yùn)行速度上都是最優(yōu)的,以便用戶很好地使用。
Debug 和 Release 的真正秘密,在于一組編譯選項(xiàng)。下面列出了分別針對(duì)二者的選項(xiàng)(當(dāng)然除此之外還有其他一些,如/Fd /Fo,但區(qū)別并不重要,通常他們也不會(huì)引起 Release 版錯(cuò)誤,在此不討論)

Debug 版本:

/MDd /MLd 或 /MTd 使用 Debug runtime library(調(diào)試版本的運(yùn)行時(shí)刻函數(shù)庫(kù))
/Od 關(guān)閉優(yōu)化開(kāi)關(guān)
/D "_DEBUG" 相當(dāng)于 #define _DEBUG,打開(kāi)編譯調(diào)試代碼開(kāi)關(guān)(主要針對(duì)assert函數(shù))
/ZI 創(chuàng)建 Edit and continue(編輯繼續(xù))數(shù)據(jù)庫(kù),這樣在調(diào)試過(guò)程中如果修改了源代碼不需重新編譯
/GZ 可以幫助捕獲內(nèi)存錯(cuò)誤
/Gm 打開(kāi)最小化重鏈接開(kāi)關(guān),減少鏈接時(shí)間

Release 版本:

/MD /ML 或 /MT 使用發(fā)布版本的運(yùn)行時(shí)刻函數(shù)庫(kù)
/O1 或 /O2 優(yōu)化開(kāi)關(guān),使程序最小或最快
/D "NDEBUG" 關(guān)閉條件編譯調(diào)試代碼開(kāi)關(guān)(即不編譯assert函數(shù))
/GF 合并重復(fù)的字符串,并將字符串常量放到只讀內(nèi)存,防止被修改

實(shí)際上,Debug 和 Release 并沒(méi)有本質(zhì)的界限,他們只是一組編譯選項(xiàng)的集合,編譯器只是按照預(yù)定的選項(xiàng)行動(dòng)。事實(shí)上,我們甚至可以修改這些選項(xiàng),從而得到優(yōu)化過(guò)的調(diào)試版本或是帶跟蹤語(yǔ)句的發(fā)布版本。

四、附錄:

DLL的災(zāi)難

人們將不同版本DLL混合造成的不一致性形象的稱為 “動(dòng)態(tài)連接庫(kù)的地獄“(DLL Hell) ,甚至微軟自己也這么說(shuō)。

如果你的程序使用你自己的DLL時(shí)請(qǐng)注意:

不能將debug和release版的DLL混合在一起使用。debug都是debug版,release版都是release版。

解決辦法是將debug和release的程序分別放在主程序的debug和release目錄下 

上述內(nèi)容就是項(xiàng)目發(fā)布Debug版和Release版的區(qū)別有哪些,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道。


網(wǎng)頁(yè)題目:項(xiàng)目發(fā)布Debug版和Release版的區(qū)別有哪些-創(chuàng)新互聯(lián)
當(dāng)前地址:http://weahome.cn/article/cohiih.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部