新聞中心
C++編譯器已與另一個(gè)編輯器和其他程序捆綁進(jìn)一個(gè)交互的開發(fā)環(huán)境IDE中,要進(jìn)行C++開發(fā),第一件事情就是選擇一個(gè)合適的C++編輯器。C++編輯器選擇有幾個(gè)要素:

專注于為中小企業(yè)提供網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)南平免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了上千余家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
1)減少不必要的編輯動(dòng)作,減少編輯的時(shí)間。一切能夠無二義性描述出來的編輯任務(wù),都可以而且應(yīng)該能被自動(dòng)化。例如,每一個(gè)C++程序都會(huì)有一個(gè)main函數(shù);我們?cè)诙x.h文件時(shí),都希望加入一些預(yù)處理指令#define來幫我們解決重復(fù)引用同一個(gè)頭文件而帶來的麻煩。
鼠標(biāo)操作總是比鍵盤操作要慢的。這方面EMACS做得可算是到了極致。所以, EMACS用戶經(jīng)常會(huì)吹噓:他們編輯的速度等同于他們思考的速度。
2)可擴(kuò)展性高。
程序員預(yù)期的C++編輯器應(yīng)該能提供一些編程的幫助,例如,語法高亮,自動(dòng)補(bǔ)齊,自動(dòng)排版,語法檢查等等。留心觀察一下gedit, vim, emacs, ultraEdit,就會(huì)發(fā)現(xiàn)它們提供的遠(yuǎn)不是windows 記事本,寫字板提供的那么簡(jiǎn)陋的功能。
對(duì)于一種新的語言,新的語法,它們應(yīng)該能很方便地提供支持,而不停留在一種或幾種固定的語言上。
3)用戶可定制性高。
如果想長期從事研發(fā), 特別是linux/unix下研發(fā)的話,那么你很有必要學(xué)好一個(gè)功能足夠的C++編輯器。有這么一句話:Linux下程序員分為三種,使用emacs的,使用vi的,還有其它。
EMACS是Stallman用lisp語言寫的一個(gè)GPL的C++編輯器。我們這里所說的emacs指的是GNU emacs,而非Xemacs。由于它的開放性,我們可以把它打造成一個(gè)功能強(qiáng)大的IDE。我們?cè)诎惭b好CGYwin之后,也可以在Windows系統(tǒng)下使用 EMACS。CGYwin和MINGW是第三方寫的一個(gè)在Windows系統(tǒng)上模擬POSIX系統(tǒng)的工具。
EMACS與其說的是一個(gè)C++編輯器,倒不如說它是一個(gè)操作系統(tǒng)。我們可以用它來寫編程,寫wiki,收發(fā)郵件等等。EMACS主要是通過兩種方式來進(jìn)行擴(kuò)展:el腳本(elisp是lisp的一種方言)和第三方擴(kuò)展包。EMACS的入門成本很高。
C++編譯器首選GCC(GNU COMPILER COLLECTION)。原因有兩個(gè),它是GNU開源的,同時(shí)它對(duì)標(biāo)準(zhǔn)C++的支持度高達(dá)96.15%。而VC++6.0的支持度只有83.43%。 GCC不僅是通常意義上的C或C++的C++編譯器,它還可以編譯java等其它語言。gcc是gnu c的C++編譯器,g++是gnu c++的C++編譯器, 而EGCS(Enhanced GNU Compiler Suite)可以認(rèn)為是gcc的改進(jìn)版。
我們可以通過一條編譯指令來完成所有步驟。也可以分步執(zhí)行。gcc有三個(gè)重要選項(xiàng)-E(只進(jìn)行預(yù)處理), -S(生成匯編代碼), -g(生成帶原代碼調(diào)試符號(hào)的可執(zhí)行文件,如果想用gdb調(diào)試的話,就應(yīng)該在編譯時(shí)打開這個(gè)選項(xiàng))。
GCC可以看作一個(gè)軟件包,除了編譯工具,它還集成了調(diào)試器gdb,性能分析工具gcov, gprof。
只要我們裝好了GCC,這些強(qiáng)大工具就可以直接使用了。通過gcov,我們可以查看一個(gè)程序,源代碼中每行代碼的運(yùn)行次數(shù)。我們優(yōu)化運(yùn)行次數(shù)最多的代碼,那么就可以大大優(yōu)化程序。使用gcov時(shí),需要打開 GCC的fprofile-arcs和ftest-coverage兩個(gè)選項(xiàng)。gcov中常用的選項(xiàng)有-b分支統(tǒng)計(jì)信息。
通過gprof工具,我們可以查看函數(shù)之間的調(diào)用順序,及各個(gè)函數(shù)運(yùn)行的時(shí)間。我們可以將gprof理解為linux/unix自帶工具time的加強(qiáng)版。使用gprof時(shí),需要打開GCC的pg選項(xiàng)。
gcov和 gprof的共同點(diǎn)是在編譯程序時(shí),加入自己的一些輔助信息,由此來進(jìn)行程序診斷。除了,這些優(yōu)化手段,我們還可以使用一些內(nèi)存泄漏工具,來減少野指針,未釋放的內(nèi)存空間。 #t#
GDB即GNU的調(diào)試器,它是GCC附帶的一個(gè)性能優(yōu)質(zhì)的調(diào)試器。通過GDB和腳本結(jié)合,我們可以很好的實(shí)現(xiàn)回歸測(cè)試。
GDB可以運(yùn)行于CLI和GUI兩種模式。
默認(rèn)GDB是CLI模式的,我們可以去下載和安裝GUI模式的GDB,例如xxgdb, ddd等。一個(gè)更好的方式是在 EMACS中使用GDB。
C++編輯器包括visual studio工具的所有調(diào)試功能,還包括它沒有的功能。它除了支持,我們一般的設(shè)置斷點(diǎn),單步跟蹤,step in, step out, step over等,還有一些強(qiáng)大的功能。在gdb中,我們可以有以下幾種暫停方式:斷點(diǎn)(BreakPoint)、觀察點(diǎn)(WatchPoint)、捕捉點(diǎn)(CatchPoint)、信號(hào)(Signals)、線程停止(Thread Stops)。
分享名稱:選擇C++編輯器的幾大要素
轉(zhuǎn)載來源:http://www.dlmjj.cn/article/cdsiejp.html


咨詢
建站咨詢
