C++探索之旅 | 第一部分第二課:C++編程的必要軟件

作者 謝恩銘呈昔,公眾號(hào)「程序員聯(lián)盟」(微信號(hào):coderhub)挥等。
轉(zhuǎn)載請注明出處。
原文:http://www.reibang.com/p/bcdfbf661888


《C++探索之旅》全系列

內(nèi)容簡介


  1. 前言
  2. 編程的必要工具
  3. 選擇你的 IDE
  4. 總結(jié)
  5. 第一部分第三課預(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è)選擇了:

  1. 分開使用文本編輯器奉狈,編譯器和調(diào)試器這三種工具卤唉。雖然復(fù)雜一些,但是也行得通嘹吨。特別在 Linux 環(huán)境下搬味,不少程序員還是喜歡用這種方式來編程,可能不是裝蟀拷,要的就是這個(gè) feel碰纬,倍兒爽。

  2. 使用一種軟件问芬,這種軟件集合了這三種工具的功能悦析。這種軟件被稱為 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ū)域:

  1. 工具欄:有很多按鈕,但只有幾個(gè)是真正我們時(shí)常用到的踪区。

  2. 項(xiàng)目文件列表區(qū):左邊的欄里面顯示了你的項(xiàng)目的所有文件

  3. 主界面:寫代碼的地方

  4. 通知欄:會(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)目名稱芯杀,我們填的是著名的 HelloWorldFolder 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)目名稱澎怒,我們填了 HelloWorldLanguage(語言)選擇 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é)


  1. 一個(gè)程序要從開始編寫到能夠運(yùn)行,一般來說需要三種工具:文本編輯器观蜗,編譯器臊恋,調(diào)試器(對于 Python 這樣的解釋性語言,就不需要編譯了墓捻。當(dāng)然了抖仅,其實(shí)要深究的話,Python 也是和 Java 類似的,先編譯為字節(jié)碼撤卢,再被 Python 虛擬機(jī)解釋執(zhí)行的)环凿。

  2. 我們可以分開使用這三種工具來完成任務(wù)。但是比較方便的是使用 IDE(集成開發(fā)環(huán)境放吩,混合了這三者)來開發(fā)智听。

  3. 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益涧。

  4. 學(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)桿直跑」

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市诊赊,隨后出現(xiàn)的幾起案子厚满,更是在濱河造成了極大的恐慌,老刑警劉巖豪筝,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件痰滋,死亡現(xiàn)場離奇詭異摘能,居然都是意外死亡续崖,警方通過查閱死者的電腦和手機(jī)敲街,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來严望,“玉大人多艇,你說我怎么就攤上這事∠裎牵” “怎么了峻黍?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長拨匆。 經(jīng)常有香客問我姆涩,道長,這世上最難降的妖魔是什么惭每? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任骨饿,我火速辦了婚禮,結(jié)果婚禮上台腥,老公的妹妹穿的比我還像新娘宏赘。我一直安慰自己,他們只是感情好黎侈,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布察署。 她就那樣靜靜地躺著,像睡著了一般峻汉。 火紅的嫁衣襯著肌膚如雪贴汪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天休吠,我揣著相機(jī)與錄音嘶是,去河邊找鬼。 笑死蛛碌,一個(gè)胖子當(dāng)著我的面吹牛聂喇,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播蔚携,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼希太,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了酝蜒?” 一聲冷哼從身側(cè)響起誊辉,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎亡脑,沒想到半個(gè)月后堕澄,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體邀跃,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年蛙紫,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了拍屑。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 37,997評論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡坑傅,死狀恐怖僵驰,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情唁毒,我是刑警寧澤蒜茴,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站浆西,受9級(jí)特大地震影響粉私,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜近零,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一诺核、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧秒赤,春花似錦猪瞬、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至潮售,卻和暖如春痊项,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背酥诽。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工鞍泉, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人肮帐。 一個(gè)月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓咖驮,卻偏偏與公主長得像,于是被迫代替她去往敵國和親训枢。 傳聞我的和親對象是個(gè)殘疾皇子托修,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評論 2 345

推薦閱讀更多精彩內(nèi)容