編譯和debug區別
A. 編譯和調試的區別是什麼
編譯是編譯器在你程序沒有運行的時候幫你檢查錯誤
調試是你用調試器在程序運行以後,根據運行狀況來檢查錯誤
在寫程序的時候,兩個環節都是需要的
順便你看的書不太准確。所謂的文件中寫上# include "afx.h"(或者其他頭文件),那麼就只需調試的時候檢查使用的函數是否正確那隻是TC罷了。如果用的vc或vs的話,那麼只要你的afx.cpp在工程裡面,就會進行編譯
B. 請教編譯與調試的區別是什麼
不調試直接編譯,省去調試步驟,節約CPU計算資源等。所以說「代價小」。不過一般調試也佔用不了多少資源。
C. debug和release兩種編譯方法的區別與聯系
Debug 為調試版本,Release 為發布版本,從開發者和用戶視角看,他們的區別如下:
一、從開發者視角,Debug和Release的區別,主要是編譯器的選項不同,Debug 包含調試信息,並且不作任何優化,便於程序員調試程序。Release 往往是進行了各種優化,使得程序在代碼大小和運行速度上都是最優的,以便用戶很好地使用。
Debug 版本 相關參數解釋:
參數 含義
/MDd /MLd 或 /MTd 使用 Debug runtime library(調試版本的運行時刻函數庫)
/Od 關閉優化開關
/D "_DEBUG" 相當於 #define _DEBUG,打開編譯調試代碼開關(主要針對assert函數)
/ZI
創建 Edit and continue(編輯繼續)資料庫,這樣在調試過程中如果修改了源代碼不需重新編譯
GZ 可以幫助捕獲內存錯誤
Release 版本 參數含義
/MD /ML 或 /MT 使用發布版本的運行時刻函數庫
/O1 或 /O2 優化開關,使程序最小或最快
/D "NDEBUG" 關閉條件編譯調試代碼開關(即不編譯assert函數)
/GF 合並重復的字元串,並將字元串常量放到只讀內存,防止被修改
二、使用者視角,我們下載軟體的時候,一般應該選擇Release版。Debug一般比測試版更粗,主要提供給高級測試者反饋修改意見。
D. vs中debug和release版本的區別
vs中的程序有debug和release兩個版本。
1、版本不同
Debug通常稱為調試版本,通過一系列編譯選項的配合,編譯的結果通常包含調試信息,而且不做任何優化,以為開發人員提供強大的應用程序調試能力。
而Release通常稱為發布版本,是為用戶使用的,一般客戶不允許在發布版本上進行調試。
2、運行效果不同
debug程序通常比release程序要慢,尤其是處理視頻方便release要比debug快很多。
3、演算法不同
debug跟release在初始化變數時所做的操作是不同的,debug是將每個位元組位都賦成0xcc, 而release的賦值近似於隨機。
(4)編譯和debug區別擴展閱讀:
二者的編譯選項。
Debug 版本:
/Od 關閉優化開關
/D "_DEBUG" 相當於 #define _DEBUG,打開編譯調試代碼開關(主要針對assert函數)
/ZI 創建 Edit and continue(編輯繼續)資料庫,這樣在調試過程中如果修改了源代碼不需重新編譯
/GZ 可以幫助捕獲內存錯誤
/Gm 打開最小化重鏈接開關,減少鏈接時間
Release 版本:
/MD /ML 或 /MT 使用發布版本的運行時刻函數庫
/O1 或 /O2 優化開關,使程序 最小或最快
/D "NDEBUG" 關閉條件編譯調試代碼開關(即不編譯assert函數)
/GF 合並重復的字元串,並將字元串常量放到只讀內存,防止被修改
可以理解Debug 和 Release 並沒有本質的界限,他們只是一組編譯選項的集合,編譯器只是按照預定的選項行動。可以修改這些選項,從而得到優化過的調試版本或是帶跟蹤語句的發布版本。
E. C語言中編譯 生成 調試 測試 運行各是什麼意思有什麼區別
C語言中編譯 生成 調試 測試 運行的區別如下:
區別一:
從編譯方面來看:
編譯依賴於編譯器,英文是compile, vc中這一過程是將源代碼轉換成目標文件,如:obj文件,rc文件等。
區別二:
從生成方面來看:
生成指的是連接的過程,英文是build,依賴於鏈接器。vc中在這一階段將所有的目標文件和所有需要用到的組件組合成一個整體,例如需要生成的是windows系統下的PE可執行文件,鏈接器會依照特定格式將目標文件組合,最後生成PE格式的,exe或dll文件。
區別三:
從調試方面來看:
調試是所有或部分代碼編寫完成後,讓程序在調試器中運行,用這種手段對程序進行分析,找出並修正潛在問題。
區別四:
從運行方面來看:
運行就是讓程序在系統中運行。
(5)編譯和debug區別擴展閱讀:
C語言的介紹:
C語言是目前流行的通用程序設計語言,是計算機專業人員和計算機愛好者開發軟體的首選開發工具。C語言源程序必須經過某種編譯工具翻譯成為目標機器語言程序才能夠在計算機上執行。
然而隨著程序編寫規模的擴大,順利編寫出正確的程序絕非一件容易的事情,早期的許多編譯工具僅僅提供翻譯功能,已滿足不了應用的要求,編程人員需要-種功能全面並高度集成的編譯環境。
程序是一段具有一定功能的代碼,編寫程序的目的是解決問題。當程序人員寫完程序後,其實並不起作用,只有當編寫的程序經過一系列的處理後,能夠解決問題時。
序才成為真正的程序,這一系列的處理過程,-般就是編輯、編譯、連接、調試與運行等。目前最成熟的C語言集成環境主要有Turbo C2.0和Turbo C 3.0( 簡稱TC30)或Borland C++3.1( 簡稱BC31)以及Visual C++ 6.0。
F. debug和編譯是一個意思嗎
不是的
但也用編譯的功能
因為你要調試程序的時候首先就是要運行程序!!!
G. Fortran 編譯過程中,debug和release最大的區別是什麼
Debug方式是用來調試代碼的,如果代碼出錯可以用調試器調試,另外也不進行任何優化。Release模式是調試好後發布用的,對程序進行一定的優化,一般包含的調試信息很少,甚至沒有。具體的區別可以看編譯和鏈接的詳細參數,因為Debug和Release的參數都是可以修改的,只是個名稱而已。
H. vc++ build和debug的區別!!
一個是編譯(並鏈接),一個是調試,在術語上完全是兩碼事。
估計你是初學吧,這是說兩個按鈕?
build按鈕就是編譯,在編譯無誤後按照工程設置鏈接(link)成為最終文件exe或者dll等等。如果程序已經編譯過不再編譯。
debug按鈕,是對已經編譯好的程序進行調試運行(就是只能在編譯器中的運行狀態),可以斷點查看,單步執行。如果程序沒有編譯,會提示你是否編譯,如此而已。
I. CCS中 Debug 和 Release 編譯方式的區別
Debug 為調試版本,Release 為發布版本,從開發者和用戶視角看,他們的區別如下:
一、從開發者視角,Debug和Release的區別,主要是編譯器的選項不同,Debug 包含調試信息,並且不作任何優化,便於程序員調試程序。Release 往往是進行了各種優化,使得程序在代碼大小和運行速度上都是最優的,以便用戶很好地使用。
Debug 版本 相關參數解釋:
參數 含義
/MDd /MLd 或 /MTd 使用 Debug runtime library(調試版本的運行時刻函數庫)
/Od 關閉優化開關
/D "_DEBUG" 相當於 #define _DEBUG,打開編譯調試代碼開關(主要針對assert函數)
/ZI
創建 Edit and continue(編輯繼續)資料庫,這樣在調試過程中如果修改了源代碼不需重新編譯
GZ 可以幫助捕獲內存錯誤
Release 版本 參數含義
/MD /ML 或 /MT 使用發布版本的運行時刻函數庫
/O1 或 /O2 優化開關,使程序最小或最快
/D "NDEBUG" 關閉條件編譯調試代碼開關(即不編譯assert函數)
/GF 合並重復的字元串,並將字元串常量放到只讀內存,防止被修改
二、使用者視角,我們下載軟體的時候,一般應該選擇Release版。Debug一般比測試版更粗,主要提供給高級測試者反饋修改意見。