中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

項目發布Debug版和Release版的區別有哪些

發布時間:2020-10-26 17:04:49 來源:億速云 閱讀:368 作者:Leah 欄目:開發技術

本篇文章為大家展示了項目發布Debug版和Release版的區別有哪些,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

一、Debug和Release的區別

Debug:調試版本,包含調試信息,所以容量比Release大很多,并且不進行任何優化(優化會使調試復雜化,因為源代碼和生成的指令間關系會更復雜),便于程序員調試。Debug模式下生成兩個文件,除了.exe或.dll文件外,還有一個.pdb文件,該文件記錄了代碼中斷點等調試信息

Release:發布版本,不對源代碼進行調試,編譯時對應用程序的速度進行優化,使得程序在代碼大小和運行速度上都是最優的。(調試信息可在單獨的PDB文件中生成)。Release模式下生成一個文件.exe或.dll文件 

二、Obj文件夾的作用

obj目錄中也有debug和release兩個子目錄,obj目錄是項目生成dll的源目錄,然后將生成好的dll復制到bin目錄下。obj用于存放編譯過程中生成的中間臨時文件。在.Net中,編譯時分模塊進行的,每個模塊的編譯結果都保存在obj目錄下,最后會合并為一個.exe或則.dll文件保存到bin目錄下。

因為每次編譯都是增量編譯,也就是只重新編譯改變了的模塊,所以這個obj目錄的作用就是保存這些小塊的編譯結果,加快編譯速度。 

三、Debug 和 Release 編譯方式的本質區別

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

Debug 版本:

/MDd /MLd 或 /MTd 使用 Debug runtime library(調試版本的運行時刻函數庫)
/Od 關閉優化開關
/D "_DEBUG" 相當于 #define _DEBUG,打開編譯調試代碼開關(主要針對assert函數)
/ZI 創建 Edit and continue(編輯繼續)數據庫,這樣在調試過程中如果修改了源代碼不需重新編譯
/GZ 可以幫助捕獲內存錯誤
/Gm 打開最小化重鏈接開關,減少鏈接時間

Release 版本:

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

實際上,Debug 和 Release 并沒有本質的界限,他們只是一組編譯選項的集合,編譯器只是按照預定的選項行動。事實上,我們甚至可以修改這些選項,從而得到優化過的調試版本或是帶跟蹤語句的發布版本。

四、附錄:

DLL的災難

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

如果你的程序使用你自己的DLL時請注意:

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

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

上述內容就是項目發布Debug版和Release版的區別有哪些,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

渭南市| 铁力市| 五大连池市| 宜丰县| 西吉县| 新竹市| 堆龙德庆县| 手游| 伊宁市| 敦煌市| 都匀市| 绩溪县| 庆安县| 舟曲县| 蓝山县| 南京市| 苍溪县| 靖江市| 湖北省| 苍梧县| 乌鲁木齐县| 浦城县| 永州市| 璧山县| 金昌市| 财经| 灵武市| 怀柔区| 富裕县| 三门县| 温州市| 泰兴市| 永宁县| 阳春市| 铁力市| 深泽县| 永善县| 商丘市| 昌黎县| 三门峡市| 迁安市|