作者 謝恩銘呈昔,公眾號(hào)「程序員聯(lián)盟」(微信號(hào):coderhub)挥等。
轉(zhuǎn)載請注明出處。
原文:http://www.reibang.com/p/bcdfbf661888
《C++探索之旅》全系列
內(nèi)容簡介
- 前言
- 編程的必要工具
- 選擇你的 IDE
- 總結(jié)
- 第一部分第三課預(yù)告
1. 前言
經(jīng)過上一課 C++探索之旅 | 第一部分第一課:什么是C++ 之后堤尾,大家是不是摩拳擦掌肝劲,準(zhǔn)備大干一場了呢?
這一課我們來做一些 C++ 開發(fā)前的準(zhǔn)備工作郭宝。
2. 編程的必要工具
依你看辞槐,對編程來說,什么軟件是必要的呢粘室?
如果你認(rèn)真學(xué)了上一課榄檬,那你至少可以說出一種吧。
對了衔统,就是編譯器鹿榜。這個(gè)重要的程序可以把你的源代碼(用高級(jí)語言如 C語言寫的指令)轉(zhuǎn)換成電腦可以理解的二進(jìn)制碼(只包含 0 和 1 的,類似 01100110001111011101010
)锦爵。
上一課我們也提了一下舱殿,每種高級(jí)語言都有對應(yīng)的編譯器(當(dāng)然,對于 Python 這樣的解釋性語言险掀,就不需要編譯了沪袭。不過深究的話,Python 也是先編譯為字節(jié)碼,再由虛擬機(jī)解釋執(zhí)行的),光是 C++ 語言的編譯器就有很多锅移。比較常用的有 G++(GNU C++ Compiler跑杭。GNU 是國際著名的自由軟件基金會(huì),GNU 是 "GNU is Not Unix"(表示“GNU 不是 Unix”)的遞歸縮寫法。
老外總是那么頑皮,起名字也喜歡整一些編程的知識(shí),比如 Linux 就是 "Linux Is Not Unix"(表示“Linux 不是 Unix”)的遞歸十电。要不就用很多動(dòng)物的名字或圖標(biāo),特別好玩)叹螟。
除了編譯器鹃骂,我們還需要什么工具呢?
就不賣關(guān)子了罢绽,下面列出編程的基本工具:
文本編輯器:Test Editor畏线。用來寫源代碼的工具。理論上 Windows 操作系統(tǒng)的記事本也可以作為文本編輯器來使用良价。但是寝殴,最好還是用一些更高級(jí)點(diǎn)的文本編輯器蒿叠,比如可以支持代碼高亮顯示,方便你在代碼間跳轉(zhuǎn)等蚣常。個(gè)人非常推薦的文本編輯器是 Vim市咽、Emacs、VS Code抵蚊、Atom施绎、Sublime,等等贞绳。
編譯器:Compiler谷醉。已經(jīng)提過了,用來轉(zhuǎn)換(或叫編譯)你的源代碼成為二進(jìn)制碼冈闭。
調(diào)試器:Debugger俱尼。用來跟蹤、發(fā)現(xiàn)程序里的錯(cuò)誤的工具萎攒。這里出現(xiàn)一個(gè)新名詞遇八,調(diào)試(debug)。bug 表示“臭蟲躺酒,蟲子”押蚤,de 在英語里是一個(gè)表示“分離蔑歌,除掉”的前綴羹应,所以 debug 的意思就是“除臭蟲”。一般把程序里的錯(cuò)誤或者缺陷叫做 bug(臭蟲)次屠,據(jù)說是因?yàn)閭髌媾绦騿T Grace Hopper(格萊斯.霍普)有一次在 MARK II 計(jì)算機(jī)(就是那種早期的比較龐大的電腦)中發(fā)現(xiàn)了一只飛蛾园匹,這只飛蛾導(dǎo)致了這臺(tái)電腦死機(jī)(夾在電腦里的繼電器之間),霍普用鑷子把飛蛾夾出來劫灶,用透明膠布貼到筆記本上裸违,并注明“第一個(gè)發(fā)現(xiàn)蟲子(bug)的實(shí)例”。從此本昏,人們就沿用了這個(gè)稱呼供汛,用 debug 表示排除程序錯(cuò)誤的行為。現(xiàn)在霍普的筆記本涌穆,連同那只“呆萌”的飛蛾怔昨,陳列在美國歷史博物館里。
當(dāng)然宿稀,如果你有“冒險(xiǎn)精神”趁舀,喜歡挑戰(zhàn),也可以不用調(diào)試器(通過一些小技巧也是可以自己找到錯(cuò)誤所在的)祝沸。但是矮烹,我想一般來說你是會(huì)需要調(diào)試器的越庇。
所以,我們就有兩個(gè)選擇了:
分開使用文本編輯器奉狈,編譯器和調(diào)試器這三種工具卤唉。雖然復(fù)雜一些,但是也行得通嘹吨。特別在 Linux 環(huán)境下搬味,不少程序員還是喜歡用這種方式來編程,可能不是裝蟀拷,要的就是這個(gè) feel碰纬,倍兒爽。
使用一種軟件问芬,這種軟件集合了這三種工具的功能悦析。這種軟件被稱為 IDE(Integrated Development Environment,表示“集成開發(fā)環(huán)境”)此衅。
一開始你可能會(huì)難以抉擇强戴,到底用哪種呢?即使選擇了用 IDE挡鞍,也會(huì)糾結(jié)到底用哪一個(gè) IDE 好呢骑歹。
其實(shí)我們可以肯定的是:不論你選擇哪種工具,你都可以編寫你想要的程序墨微。只是效率道媚、個(gè)人習(xí)慣和特定平臺(tái)要求不同罷了。
個(gè)人淺見:
如果剛接觸 C++ 語言翘县,盡量在 Linux 的命令行里學(xué)習(xí) C++ 語言編程最域。一開始不要過分依賴 IDE。
因?yàn)?IDE 做得太好了锈麸,都有提示镀脂,代碼自動(dòng)補(bǔ)全,自動(dòng)幫你添加代碼忘伞,你就不能學(xué)到很多薄翅,也記不牢。等編程水平好了一些氓奈,再用 IDE 不遲翘魄,那個(gè)時(shí)候 IDE 可以提高你的編程效率。一開始用文本編輯器編寫 C++ 語言探颈,用 G++ 編譯 C++ 語言熟丸,用 GDB(GNU Debugger)調(diào)試 C++ 語言,是不錯(cuò)的選擇伪节。
當(dāng)然了光羞,我們還是會(huì)花比較多的篇幅介紹幾個(gè)常用的 IDE绩鸣。
3. 選擇你的 IDE
我們覺得有必要向大家展示幾個(gè)最著名的 IDE,這幾個(gè)都是免費(fèi)的:
Code::Blocks :還不錯(cuò)的一款 IDE纱兑。免費(fèi)呀闻,開源,跨平臺(tái)潜慎。
可以運(yùn)行在蘋果 macOS捡多,Windows,Linux 等大多數(shù)操作系統(tǒng)上铐炫。Visual Studio :基礎(chǔ)版本是收費(fèi)的垒手。有一個(gè) Visual Studio Community 的版本是免費(fèi)的。VS 功能很完備倒信,而且調(diào)試器很強(qiáng)大科贬。
只能運(yùn)行在 Windows 操作系統(tǒng)上。Xcode :作為蘋果的當(dāng)家 IDE鳖悠,不得不說 Xcode 真的做得太棒了榜掌。可以用來開發(fā)基本的小程序乘综,也可以編寫 iPhone 和 iPad 的 app(模擬器速度超快)憎账,和智能手表應(yīng)用,還可以和其他如 Unity 3D 引擎配合來編寫游戲卡辰。
只能運(yùn)行在蘋果 macOS 操作系統(tǒng)上胞皱。Eclipse :Eclipse 是很有名的開源免費(fèi) IDE。最開始 Eclipse 是為 Java 開發(fā)設(shè)計(jì)的 IDE看政。不過后來也推出了 C/C++ 版的 Eclipse朴恳,叫 Eclipse IDE for C/C++ Developers抄罕≡黍迹可以在 https://www.eclipse.org/downloads/packages 下載到。
-
Clion :跨平臺(tái)的 IDE呆贿。目前我個(gè)人認(rèn)為最棒的 C語言或 C++語言的 IDE嚷兔,由著名的 JetBrains 公司開發(fā)。JetBrains 的明星 IDE 還有 PyCharm(適用于 Python 語言)做入,WebStorm(適用于 JavaScript 語言)冒晰,IntelliJ IDEA(適用于 Java 和 Kotlin 語言),GoLand(適用于 Go語言)竟块,等等壶运。JetBrains 公司還開發(fā)了 Kotlin 語言,還和 Google 公司合作發(fā)行了 Android 的最強(qiáng)開發(fā) IDE:Android Studio浪秘。JetBrains 的 Clion 這款 IDE 非常強(qiáng)大蒋情,用戶體驗(yàn)非常好埠况。
缺點(diǎn):基礎(chǔ)版本是收費(fèi)的。不過棵癣,如果你是學(xué)生或教師辕翰,或者目的是課堂教學(xué),或者你有不錯(cuò)的開源項(xiàng)目狈谊,等等喜命,可以享受 JetBrains 的免費(fèi)或減免優(yōu)惠,請見 https://www.jetbrains.com/idea/buy/#discounts?billing=yearly 河劝。
Code::Blocks
Code::Blocks 是一款很不錯(cuò)的 IDE壁榕,不過目前只有英文版,當(dāng)然網(wǎng)上也有漢化版本赎瞎。
不過既然學(xué)編程护桦,就盡量把英語這關(guān)過了,也不需要太厲害的英語煎娇,基礎(chǔ)就好二庵。畢竟?jié)h化版有的翻譯不到位,可能會(huì)影響使用缓呛。而且好的編程資源基本都是英語的催享。
請參看我的 對于程序員, 為什么英語比數(shù)學(xué)更重要? 如何學(xué)習(xí) 一文。
下載 Code::Blocks
先去 Code::Blocks 的官方下載頁面:http://www.codeblocks.org/downloads/binaries 哟绊。
Windows 用戶請下載 .exe 結(jié)尾的文件因妙,請注意要下載名字里有 mingw 的那個(gè)(比如 codeblocks-20.03mingw-setup.exe),因?yàn)槿绻麤]有 mingw 這幾個(gè)字母的版本不包含編譯器票髓,就會(huì)很麻煩攀涵。
Linux 用戶請下載對應(yīng)你的操作系統(tǒng)的版本。
蘋果 macOS 用戶請下載對應(yīng) macOS 的版本(貌似 macOS 版已經(jīng)比較滯后了) 洽沟。
安裝運(yùn)行 Code::Blocks
Code::Blocks 的安裝太簡單了以故,就跟安裝 QQ 沒什么區(qū)別,一路默認(rèn)到底就好裆操。
安裝完之后雙擊運(yùn)行怒详,你可以看到如下圖的界面:
上圖中標(biāo)注了四個(gè)區(qū)域:
工具欄:有很多按鈕,但只有幾個(gè)是真正我們時(shí)常用到的踪区。
項(xiàng)目文件列表區(qū):左邊的欄里面顯示了你的項(xiàng)目的所有文件
主界面:寫代碼的地方
通知欄:會(huì)看到運(yùn)行的錯(cuò)誤昆烁,編譯的問題等等
如何來創(chuàng)建一個(gè) C++ 語言的基本的控制臺(tái)應(yīng)用程序呢?
首先到菜單里缎岗,File
-> New
-> Project
静尼,會(huì)打開如下的窗口:
可以看到,Code::Blocks 支持非常多的程序類型,這些程序類型用到不同的庫鼠渺,比如 SDL(開發(fā) 2D 程序)蜗元,OpenGL(開發(fā) 3D 程序),Qt 和 wxWidgets系冗,等等奕扣。
目前,這些圖標(biāo)很多都只是好看而已掌敬,因?yàn)槟氵€沒安裝對應(yīng)的庫惯豆,所有不能用。暫時(shí)我們只用最基本的 Console application
(控制臺(tái)應(yīng)用奔害,簡單來說就是會(huì)彈出一個(gè)框楷兽,里面顯示程序運(yùn)行的結(jié)果)。
選擇 Console application
华临,點(diǎn)擊 Go
按鈕到下一步:
Project Title
里面填寫你要?jiǎng)?chuàng)建的項(xiàng)目名稱芯杀,我們填的是著名的 HelloWorld
。Folder to create project in
是選擇項(xiàng)目存放的路徑雅潭。
點(diǎn)擊 Next
到下一步:
這里我們不必更改什么揭厚,默認(rèn)就好。點(diǎn)擊 Finish
(完成)結(jié)束配置扶供,Code::Blocks 就會(huì)創(chuàng)建你的第一個(gè)項(xiàng)目了筛圆。
Visual Studio
下載 Visual Studio,推薦去官方下載頁面 https://visualstudio.microsoft.com/downloads 椿浓。選擇適合你的操作系統(tǒng)的版本來下載太援。
?大家可以去參考網(wǎng)上的安裝和使用圖文教程。
安裝完運(yùn)行后應(yīng)該是與 Code::Blocks 類似的布局:
Xcode
macOS 操作系統(tǒng)里有不少 IDE扳碍,但是 Xcode 卻是廣大蘋果用戶的最愛提岔。
不是所有的蘋果用戶都是程序員,所以蘋果沒有在 macOS 系統(tǒng)里預(yù)裝 Xcode笋敞,你需要到 Mac App Store(應(yīng)用商店)下載 Xcode(需要有蘋果賬戶碱蒙,沒有可以注冊一個(gè))。
安裝很方便液样,只要去 App Store 搜索 Xcode
振亮,然后點(diǎn)擊 Install
(安裝)巧还,就安裝到應(yīng)用程序里了鞭莽。將 Xcode 運(yùn)行起來:
然后選擇 Create a new Xcode project
(創(chuàng)建一個(gè)新的 Xcode 項(xiàng)目),會(huì)彈出如下窗口:
選擇 OS X
-> Application
-> Command Line Tool
麸祷,點(diǎn)擊 Next
到下一步:
Project Name
里填寫項(xiàng)目名稱澎怒,我們填了 HelloWorld
。Language
(語言)選擇 C++ 語言,點(diǎn) Next
下一步喷面,會(huì)讓你選擇項(xiàng)目文件夾的存放路徑星瘾,隨便選擇。然后點(diǎn)擊 Finish
完成惧辈。
項(xiàng)目打開之后琳状,點(diǎn)擊三角形按鈕,運(yùn)行盒齿,可以看到輸出了 Hello World!
:
強(qiáng)大的 Visual Studio Code
對了念逞,順便一提,現(xiàn)在開發(fā) C++边翁,你也可以使用 Visual Studio Code(簡稱 VS Code)這個(gè)微軟開源的代碼編輯器翎承。
雖說 VS Code 本身是一個(gè)代碼編輯器,但是它豐富的插件卻可以將其變成一個(gè)不俗的 IDE符匾。VS Code 跨平臺(tái)(在 Windows叨咖,Linux 和 macOS 中都可以運(yùn)行),體積小啊胶,速度快甸各,現(xiàn)在已經(jīng)成為了很多開發(fā)者的最愛。
如果你不想安裝 Visual Studio 這樣比較大型的 IDE焰坪,也可以試試 VS Code痴晦。
VS Code 的官網(wǎng)是 https://code.visualstudio.com 。下載后安裝非常簡單琳彩,就和安裝普通軟件沒什么區(qū)別誊酌。
打開 VS Code 后,針對某種編程語言例如 C++露乏,只需要安裝對應(yīng)的官方插件(由微軟開發(fā))碧浊,即可運(yùn)行和調(diào)試該語言,也就是搖身一變成為該語言的 IDE 了瘟仿。
例如我在 VS Code 中安裝了微軟官方的 C++ 插件箱锐。
這些年微軟自從 薩提亞·納德拉(Satya Nadella)擔(dān)任 CEO 之后,逐漸擁抱開源劳较,確實(shí)為互聯(lián)網(wǎng)領(lǐng)域做出了不少貢獻(xiàn)驹止。
4. 總結(jié)
一個(gè)程序要從開始編寫到能夠運(yùn)行,一般來說需要三種工具:文本編輯器观蜗,編譯器臊恋,調(diào)試器(對于 Python 這樣的解釋性語言,就不需要編譯了墓捻。當(dāng)然了抖仅,其實(shí)要深究的話,Python 也是和 Java 類似的,先編譯為字節(jié)碼撤卢,再被 Python 虛擬機(jī)解釋執(zhí)行的)环凿。
我們可以分開使用這三種工具來完成任務(wù)。但是比較方便的是使用 IDE(集成開發(fā)環(huán)境放吩,混合了這三者)來開發(fā)智听。
CLion,Eclipse渡紫,Code::Blocks瞭稼,Visual Studio,Xcode 是著名的 IDE腻惠。當(dāng)然還有很多優(yōu)秀的 IDE环肘,就不一一介紹了。IDE 只是工具集灌。你也可以用 Vim悔雹,Emacs,Sublime欣喧,VS Code腌零,Atom 這類文本編輯器來寫 C++ 程序。VS Code 通過安裝 C++ 插件唆阿,可以變成輕量級(jí)的 C++ IDE益涧。
學(xué)習(xí)這門課的時(shí)候,你完全可以隨自己意思來選擇你的開發(fā)環(huán)境驯鳖,不必一定和我一樣闲询。
5. 第一部分第三課預(yù)告
今天的課就到這里,一起加油吧浅辙!
下一課:C++探索之旅 | 第一部分第三課:你的第一個(gè)C++程序
我是 謝恩銘扭弧,公眾號(hào)「程序員聯(lián)盟」(微信號(hào):coderhub)運(yùn)營者,慕課網(wǎng)精英講師 Oscar 老師记舆,終生學(xué)習(xí)者鸽捻。
熱愛生活,喜歡游泳泽腮,略懂烹飪御蒲。
人生格言:「向著標(biāo)桿直跑」