列舉C++編譯器支持的編譯環(huán)境
C++編譯器是一個與標(biāo)準(zhǔn)化C++高度兼容的編譯環(huán)境,C++語言最重要的成果之一,在許多重要的企業(yè)、部門甚至是軍方都有應(yīng)用,希望本文能教會你更多東西,在這里拿出來和大家分享一下。
Windows下,開發(fā)工具多以集成開發(fā)環(huán)境IDE的形式展現(xiàn)給最終用戶。例如,VS2005集成了編輯器,宏匯編ml,C /C++編譯器cl,資源編譯器rc,調(diào)試器,文檔生成工具, nmake。它們以集成方式提供給最終用戶,對于初學(xué)者而言十分方便。
但是,這種商業(yè)模式,直接導(dǎo)致用戶可定制性差,不利于自動化,集成第三方工具的能力弱。例如,無法定制一些宏來處理一些重復(fù)操作;體會不到自動化makefile一步到位快感;無法遠(yuǎn)程登錄到服務(wù)器上進(jìn)行開發(fā);無法使用某種”粘合劑”來把第三方工具(例如,文本工具,字符串工具)有效地調(diào)用起來。
可以說,良好的商業(yè)支持和傻瓜式開發(fā),是它們主要的優(yōu)點(diǎn)。在linux下,開發(fā)工具被切割成一個個獨(dú)立的小工具。各自處理不同的問題。例如,編輯器(emacs, vim)用來進(jìn)行編輯程序的,調(diào)試器(gdb)用來調(diào)試程序,C++編譯器和鏈接程序的,性能分析工具(gcov, gprof)用來優(yōu)化程序的。#t#
文檔生成器(doxygen)用來生成文檔的。同時,還有一些系統(tǒng)工具和系統(tǒng)知識,我們是很有必要了解的:程序自動化機(jī)制 makefile,系統(tǒng)粘合劑shell,系統(tǒng)查找工具grep, locate, find。其它的工具(例如ctags, OCI公司的MPC等等),一旦熟練掌握,它們將成為你手中的利器。
本文主要是一些針對LINUX下開發(fā)工具使用的經(jīng)驗(yàn)之談。由于,工具品種繁多,我們沒有能力也沒有必要一一介紹。對于LINUX下IDE工具,例如 eclipse, anjuta等,它們雖然也很實(shí)用。
但是使用起來比較簡單,而且目前還算不上主流。所以,它們將不被著重介紹。同時,本文也不打算寫成各個工具的操作手冊,只著眼于介紹各個工具的想要解決的問題、運(yùn)行機(jī)理和主要特性。
要進(jìn)行開發(fā),第一件事情就是選擇一個合適的C++編譯器。編輯器選擇有幾個要素:
1)減少不必要的編輯動作,減少編輯的時間。
一切能夠無二義性描述出來的編輯任務(wù),都可以而且應(yīng)該能被自動化。例如,每一個C++程序都會有一個main函數(shù);我們在定義.h文件時,都希望加入一些預(yù)處理指令#define來幫我們解決重復(fù)引用同一個頭文件而帶來的麻煩。鼠標(biāo)操作總是比鍵盤操作要慢的。這方面EMACS做得可算是到了極致。所以, EMACS用戶經(jīng)常會吹噓:他們編輯的速度等同于他們思考的速度。
2)可擴(kuò)展性高。
程序員預(yù)期的編輯器應(yīng)該能提供一些編程的幫助,例如,語法高亮,自動補(bǔ)齊,自動排版,語法檢查等等。留心觀察一下gedit, vim, emacs, ultraEdit,就會發(fā)現(xiàn)它們提供的遠(yuǎn)不是windows 記事本,寫字板提供的那么簡陋的功能。對于一種新的語言,新的語法,它們應(yīng)該能很方便地提供支持,而不停留在一種或幾種固定的語言上。
3)用戶可定制性高。
如果想長期從事研發(fā), 特別是linux/unix下研發(fā)的話,那么你很有必要學(xué)好一個功能足夠的編輯器。有這么一句話:Linux下程序員分為三種,使用emacs的,使用vi的,還有其它。
EMACS是Stallman用lisp語言寫的一個C++編譯器。我們這里所說的emacs指的是GNU emacs,而非Xemacs。由于它的開放性,我們可以把它打造成一個功能強(qiáng)大的IDE。我們在安裝好CGYwin之后,也可以在Windows系統(tǒng)下使用 EMACS。#t#
CGYwin和MINGW是第三方寫的一個在Windows系統(tǒng)上模擬POSIX系統(tǒng)的工具。EMACS與其說的是一個編輯器,倒不如說它是一個操作系統(tǒng)。我們可以用它來寫編程,寫wiki,收發(fā)郵件等等。EMACS主要是通過兩種方式來進(jìn)行擴(kuò)展:el腳本(elisp是lisp的一種方言)和第三方擴(kuò)展包。
C++編譯器的入門成本很高。由于是純鍵盤操作,所以需要記憶大量的快捷鍵;功能強(qiáng)大是通過用戶添加一些擴(kuò)展包,lisp腳本來實(shí)現(xiàn)的。如何正確配置和修改是很需要耐心和技巧的。