編譯調試的意思
㈠ 請問編譯,調試和運行分別有什麼區別呢
編譯是把源文件轉化為目標文件,即是把obj文件鏈接成exe文件。
調試則是為了找出在程序中的錯誤。
鏈接成可執行文件.exe,這時才可以運行,運行就是你要的結果。
㈡ 編程裡面的調試,編譯,鏈接,生成解決方案,執行這些都是什麼意思呀,MVC,VC++,VS裡面快捷鍵都是啥
編譯,源代碼(c/cpp)->目標文件(o/obj)
鏈接,目標文件->可執行文件(exe)/動態庫文件(dll)
生成解決方案:一個解決方案可能包含不止一個可執行文件/動態庫文件,生成解決方案會構建出解決方案下面所有的東西
執行:運行一個做好的exe文件
調試:在監視模式下運行,這種模式可以隨時停止程序的執行,然後對照源代碼查看變數,內存等,用於解決bug。
具體快捷鍵請自行熟悉所用的開發環境。
㈢ C語言中編譯 生成 調試 測試 運行各是什麼意思有什麼區別
C語言中編譯 生成 調試 測試 運行的區別如下:
區別一:
從編譯方面來看:
編譯依賴於編譯器,英文是compile, vc中這一過程是將源代碼轉換成目標文件,如:obj文件,rc文件等。
區別二:
從生成方面來看:
生成指的是連接的過程,英文是build,依賴於鏈接器。vc中在這一階段將所有的目標文件和所有需要用到的組件組合成一個整體,例如需要生成的是windows系統下的PE可執行文件,鏈接器會依照特定格式將目標文件組合,最後生成PE格式的,exe或dll文件。
區別三:
從調試方面來看:
調試是所有或部分代碼編寫完成後,讓程序在調試器中運行,用這種手段對程序進行分析,找出並修正潛在問題。
區別四:
從運行方面來看:
運行就是讓程序在系統中運行。
(3)編譯調試的意思擴展閱讀:
C語言的介紹:
C語言是目前流行的通用程序設計語言,是計算機專業人員和計算機愛好者開發軟體的首選開發工具。C語言源程序必須經過某種編譯工具翻譯成為目標機器語言程序才能夠在計算機上執行。
然而隨著程序編寫規模的擴大,順利編寫出正確的程序絕非一件容易的事情,早期的許多編譯工具僅僅提供翻譯功能,已滿足不了應用的要求,編程人員需要-種功能全面並高度集成的編譯環境。
程序是一段具有一定功能的代碼,編寫程序的目的是解決問題。當程序人員寫完程序後,其實並不起作用,只有當編寫的程序經過一系列的處理後,能夠解決問題時。
序才成為真正的程序,這一系列的處理過程,-般就是編輯、編譯、連接、調試與運行等。目前最成熟的C語言集成環境主要有Turbo C2.0和Turbo C 3.0( 簡稱TC30)或Borland C++3.1( 簡稱BC31)以及Visual C++ 6.0。
㈣ 編譯和調試的區別
編譯和調試都是寫程序的重要環節。它們兩者有什麼區別呢?下面,我跟大家分享一下編譯和調試的區別。
1.編譯和調試的區別
編譯是編譯器在你程序沒有運行的時候幫你檢查錯誤。
調試是你用調試器在程序運行以後,根據運行狀況來檢查錯誤。
這兩者的不可逆的,首先得編譯通過,你才能調試啊,編譯正確後,會生成exe文件,IDE中啟動程序,可以進行調試。
編譯是把源代碼變成二進制obj的過程(鏈接後成為可執行文件),當然會先幫你檢查有無簡單的語法問題,要不編譯器人家不認識,你自己說的有無邏輯就和編譯器無關了。
調試首先需要生成二進制代碼,所以需要首先進行編譯和鏈接,然後到斷點後,調試器會幫你加int 3中斷,就停住了。
編譯關注語法錯誤,調試關注邏輯錯誤。也就是說編譯關注的是syntax(語法)方面的問題,調式關注的是semantics(語義)方面的問題。
2.編譯詞法分析
詞法分析的任務是對由字元組成的單詞進行處理,從左至右逐個字元地對源程序進行掃描,產生一個個的單詞符號,把作為字元串的源程序改造成為單詞符號串的中間程序。執行詞法分析的程序稱為詞法分析程序或掃描器。
源程序中的單詞符號經掃描器分析,一般產生二元式:單詞種別;單詞自身的值。單詞種別通常用整數編碼,如果一個種別只含一個單詞符號,那麼對這個單詞符號,種別編碼就完全代表它自身的值了。若一個種別含有許多個單詞符號,那麼,對於它的每個單詞符號,除了給出種別編碼以外,還應給出自身的值。
詞法分析器一般來說有兩種方法構造:手工構造和自動生成。手工構造可使用狀態圖進行工作,自動生成使用確定的有限自動機來實現。
3.編譯語法分析
編譯程序的語法分析器以單詞符號作為輸入,分析單詞符號串是否形成符合語法規則的語法單位,如表達式、賦值、循環等,最後看是否構成一個符合要求的程序,按該語言使用的語法規則分析檢查每條語句是否有正確的邏輯結構,程序是最終的一個語法單位。編譯程序的語法規則可用上下文無關文法來刻畫。
語法分析的方法分為兩種:自上而下分析法和自下而上分析法。自上而下就是從文法的開始符號出發,向下推導,推出句子。而自下而上分析法採用的是移進歸約法,基本思想是:用一個寄存符號的先進後出棧,把輸入符號一個一個地移進棧里,當棧頂形成某個產生式的一個候選式時,即把棧頂的這一部分歸約成該產生式的左鄰符號。
4.代碼優化
代碼優化是指對程序進行多種等價變換,使得從變換後的程序出發,能生成更有效的目標代碼。所謂等價,是指不改變程序的運行結果。所謂有效,主要指目標代碼運行時間較短,以及佔用的存儲空間較小。這種變換稱為優化。
有兩類優化:一類是對語法分析後的中間代碼進行優化,它不依賴於具體的計算機;另一類是在生成目標代碼時進行的,它在很大程度上依賴於具體的計算機。對於前一類優化,根據它所涉及的程序范圍可分為局部優化、循環優化和全局優化三個不同的級別。
4.編譯出錯處理
如果編譯過程中發現源程序有錯誤,編譯程序應報告錯誤的性質和錯誤的發生的地點,並且將錯誤所造成的影響限制在盡可能小的范圍內,使得源程序的其餘部分能繼續被編譯下去,有些編譯程序還能自動糾正錯誤,這些工作由錯誤處理程序完成。
需要注意的是,一般上編譯器只做語法檢查和最簡單的語義檢查,而不檢查程序的邏輯。邏輯錯誤要通過調試。
我總結:
看完了上面的比較,你現在還能區別編譯與調試嗎?其實,只要記住這句話:“編譯關注語法錯誤,調試關注邏輯錯誤,先有編譯,後有調試”,就不會忘了兩者的區別了。
㈤ c++編譯器里的調試,編譯,運行都是什麼意思啊,有什麼區別啊
出現這種情況的原因可能有很多,最常見的就是源代碼和程序不匹配導致的,可以這樣設置
工具-》選項-》調試
將其中的「要求源文件與原始版本完全匹配」的鉤去掉,然後再試試看。
㈥ Virsul Studio 2008中的生成解決方案、編譯、生成文件、調試分別代表什麼意思
解決方案可以理解為一系列項目的組合.
實際的軟體通常由有很多文件組合工作而成,比如一個主EXE文件,若干個DLL文件和其他資源文件.
其中,EXE文件,DLL文件在VS2008里均叫做項目,解決一個小問題.這些項目組合起來工作,解決一個大課題,就成為VS2008裡面說的解決方案.
通俗點理解,解決方案就是一個大文件夾,裡面可以放很多小文件夾(項目).
用解決方案最大的好處是代碼都放在一起,可以很容易的從一個地方復制到另一個地方,不用作任何重新配置即可重新編譯----可能這不是全部,但我目前就體會到這點好處~
明白上面說的,生成ABC就不是問題了,是單獨生成解決方案中的一個小項目(而不是整個解決方案)的意思
另:
生成解決方案: 編譯解決方案中的所有內容
編譯 : 把你寫的文本格式代碼轉換成電腦(主要是CPU)可以識別的二進制指令
調試 : 在特殊的環境中運行你寫的程序,如果程序中有錯誤,這個環境會中斷程序,並給你指出來哪裡有錯.
㈦ 嵌入式軟體中GCC編譯,匯編,鏈接,調試的作用
GCC:是一套由GNU工程開發的支持多種編程語言的編譯器。將程序代碼編譯成機器語言。
編譯:1、利用編譯程序從源語言編寫的源程序產生目標程序的過程。
2、用編譯程序產生目標程序的動作。 編譯就是把高級語言變成計算機可以識別的2進制
語言,計算機只認識1和0,編譯程序把人們熟悉的語言換成2進制的。 編譯程序把一
個源程序翻譯成目標程序的工作過程分為五個階段:詞法分析;語法分析;語義檢查
和中間代碼生成;代碼優化;目標代碼生成。主要是進行詞法分析和語法分析,又稱
為源程序分析,分析過程中發現有語法錯誤,給出提示信息。
匯編:把匯編語言翻譯成機器語言的過程稱為匯編,在匯編語言中,用助記符(Memoni)代替操作
碼,用地址符號(Symbol)或標號(Label)代替地址碼。這樣用符號代替機器語言的二進制
碼,就把機器語言變成了匯編語言
連接:用來把要執行的程序與庫文件或其他已經翻譯好的子程序(能完成一種獨立功能的程序
模塊)連接在一起,形成機器能執行的程序。
調試:編好程序後,用各種手段進行查錯和排錯的過程。
㈧ 編譯和調試的區別是什麼
編譯是編譯器在你程序沒有運行的時候幫你檢查錯誤
調試是你用調試器在程序運行以後,根據運行狀況來檢查錯誤
在寫程序的時候,兩個環節都是需要的
順便你看的書不太准確。所謂的文件中寫上# include "afx.h"(或者其他頭文件),那麼就只需調試的時候檢查使用的函數是否正確那隻是TC罷了。如果用的vc或vs的話,那麼只要你的afx.cpp在工程裡面,就會進行編譯