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

作者 謝恩銘,公眾號「程序員聯(lián)盟」(微信號:coderhub)。
轉載請注明出處。
原文:http://www.itdecent.cn/p/bcdfbf661888


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

內(nèi)容簡介


  1. 前言
  2. 編程的必要工具
  3. 選擇你的 IDE
  4. 總結
  5. 第一部分第三課預告

1. 前言


經(jīng)過上一課 C++探索之旅 | 第一部分第一課:什么是C++ 之后,大家是不是摩拳擦掌,準備大干一場了呢?

這一課我們來做一些 C++ 開發(fā)前的準備工作。

2. 編程的必要工具


依你看,對編程來說,什么軟件是必要的呢?

如果你認真學了上一課,那你至少可以說出一種吧。

對了,就是編譯器。這個重要的程序可以把你的源代碼(用高級語言如 C語言寫的指令)轉換成電腦可以理解的二進制碼(只包含 0 和 1 的,類似 01100110001111011101010 )。

上一課我們也提了一下,每種高級語言都有對應的編譯器(當然,對于 Python 這樣的解釋性語言,就不需要編譯了。不過深究的話,Python 也是先編譯為字節(jié)碼,再由虛擬機解釋執(zhí)行的),光是 C++ 語言的編譯器就有很多。比較常用的有 G++(GNU C++ Compiler。GNU 是國際著名的自由軟件基金會,GNU 是 "GNU is Not Unix"(表示“GNU 不是 Unix”)的遞歸縮寫法。

老外總是那么頑皮,起名字也喜歡整一些編程的知識,比如 Linux 就是 "Linux Is Not Unix"(表示“Linux 不是 Unix”)的遞歸。要不就用很多動物的名字或圖標,特別好玩)。

除了編譯器,我們還需要什么工具呢?

就不賣關子了,下面列出編程的基本工具:

  • 文本編輯器:Test Editor。用來寫源代碼的工具。理論上 Windows 操作系統(tǒng)的記事本也可以作為文本編輯器來使用。但是,最好還是用一些更高級點的文本編輯器,比如可以支持代碼高亮顯示,方便你在代碼間跳轉等。個人非常推薦的文本編輯器是 Vim、Emacs、VS Code、Atom、Sublime,等等。

  • 編譯器:Compiler。已經(jīng)提過了,用來轉換(或叫編譯)你的源代碼成為二進制碼。

  • 調試器:Debugger。用來跟蹤、發(fā)現(xiàn)程序里的錯誤的工具。這里出現(xiàn)一個新名詞,調試(debug)。bug 表示“臭蟲,蟲子”,de 在英語里是一個表示“分離,除掉”的前綴,所以 debug 的意思就是“除臭蟲”。一般把程序里的錯誤或者缺陷叫做 bug(臭蟲),據(jù)說是因為傳奇女程序員 Grace Hopper(格萊斯.霍普)有一次在 MARK II 計算機(就是那種早期的比較龐大的電腦)中發(fā)現(xiàn)了一只飛蛾,這只飛蛾導致了這臺電腦死機(夾在電腦里的繼電器之間),霍普用鑷子把飛蛾夾出來,用透明膠布貼到筆記本上,并注明“第一個發(fā)現(xiàn)蟲子(bug)的實例”。從此,人們就沿用了這個稱呼,用 debug 表示排除程序錯誤的行為?,F(xiàn)在霍普的筆記本,連同那只“呆萌”的飛蛾,陳列在美國歷史博物館里。

霍普的筆記本和光榮載入歷史的飛蛾

當然,如果你有“冒險精神”,喜歡挑戰(zhàn),也可以不用調試器(通過一些小技巧也是可以自己找到錯誤所在的)。但是,我想一般來說你是會需要調試器的。

所以,我們就有兩個選擇了:

  1. 分開使用文本編輯器,編譯器和調試器這三種工具。雖然復雜一些,但是也行得通。特別在 Linux 環(huán)境下,不少程序員還是喜歡用這種方式來編程,可能不是裝,要的就是這個 feel,倍兒爽。

  2. 使用一種軟件,這種軟件集合了這三種工具的功能。這種軟件被稱為 IDE(Integrated Development Environment,表示“集成開發(fā)環(huán)境”)。

一開始你可能會難以抉擇,到底用哪種呢?即使選擇了用 IDE,也會糾結到底用哪一個 IDE 好呢。

其實我們可以肯定的是:不論你選擇哪種工具,你都可以編寫你想要的程序。只是效率、個人習慣和特定平臺要求不同罷了。

個人淺見:
如果剛接觸 C++ 語言,盡量在 Linux 的命令行里學習 C++ 語言編程。一開始不要過分依賴 IDE。
因為 IDE 做得太好了,都有提示,代碼自動補全,自動幫你添加代碼,你就不能學到很多,也記不牢。等編程水平好了一些,再用 IDE 不遲,那個時候 IDE 可以提高你的編程效率。一開始用文本編輯器編寫 C++ 語言,用 G++ 編譯 C++ 語言,用 GDB(GNU Debugger)調試 C++ 語言,是不錯的選擇。

當然了,我們還是會花比較多的篇幅介紹幾個常用的 IDE。

3. 選擇你的 IDE


我們覺得有必要向大家展示幾個最著名的 IDE,這幾個都是免費的:

  • Code::Blocks :還不錯的一款 IDE。免費,開源,跨平臺。
    可以運行在蘋果 macOS,Windows,Linux 等大多數(shù)操作系統(tǒng)上。

  • Visual Studio :基礎版本是收費的。有一個 Visual Studio Community 的版本是免費的。VS 功能很完備,而且調試器很強大。
    只能運行在 Windows 操作系統(tǒng)上。

  • Xcode :作為蘋果的當家 IDE,不得不說 Xcode 真的做得太棒了??梢杂脕黹_發(fā)基本的小程序,也可以編寫 iPhone 和 iPad 的 app(模擬器速度超快),和智能手表應用,還可以和其他如 Unity 3D 引擎配合來編寫游戲。
    只能運行在蘋果 macOS 操作系統(tǒng)上。

  • Eclipse :Eclipse 是很有名的開源免費 IDE。最開始 Eclipse 是為 Java 開發(fā)設計的 IDE。不過后來也推出了 C/C++ 版的 Eclipse,叫 Eclipse IDE for C/C++ Developers??梢栽?https://www.eclipse.org/downloads/packages 下載到。

  • Clion :跨平臺的 IDE。目前我個人認為最棒的 C語言或 C++語言的 IDE,由著名的 JetBrains 公司開發(fā)。JetBrains 的明星 IDE 還有 PyCharm(適用于 Python 語言),WebStorm(適用于 JavaScript 語言),IntelliJ IDEA(適用于 Java 和 Kotlin 語言),GoLand(適用于 Go語言),等等。JetBrains 公司還開發(fā)了 Kotlin 語言,還和 Google 公司合作發(fā)行了 Android 的最強開發(fā) IDE:Android Studio。JetBrains 的 Clion 這款 IDE 非常強大,用戶體驗非常好。
    缺點:基礎版本是收費的。不過,如果你是學生或教師,或者目的是課堂教學,或者你有不錯的開源項目,等等,可以享受 JetBrains 的免費或減免優(yōu)惠,請見 https://www.jetbrains.com/idea/buy/#discounts?billing=yearly

Code::Blocks


Code::Blocks 是一款很不錯的 IDE,不過目前只有英文版,當然網(wǎng)上也有漢化版本。

不過既然學編程,就盡量把英語這關過了,也不需要太厲害的英語,基礎就好。畢竟?jié)h化版有的翻譯不到位,可能會影響使用。而且好的編程資源基本都是英語的。

請參看我的 對于程序員, 為什么英語比數(shù)學更重要? 如何學習 一文。

下載 Code::Blocks

先去 Code::Blocks 的官方下載頁面:http://www.codeblocks.org/downloads/binaries 。

  • Windows 用戶請下載 .exe 結尾的文件,請注意要下載名字里有 mingw 的那個(比如 codeblocks-20.03mingw-setup.exe),因為如果沒有 mingw 這幾個字母的版本不包含編譯器,就會很麻煩。

  • Linux 用戶請下載對應你的操作系統(tǒng)的版本。

  • 蘋果 macOS 用戶請下載對應 macOS 的版本(貌似 macOS 版已經(jīng)比較滯后了) 。

安裝運行 Code::Blocks

Code::Blocks 的安裝太簡單了,就跟安裝 QQ 沒什么區(qū)別,一路默認到底就好。

安裝完之后雙擊運行,你可以看到如下圖的界面:

上圖中標注了四個區(qū)域:

  1. 工具欄:有很多按鈕,但只有幾個是真正我們時常用到的。

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

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

  4. 通知欄:會看到運行的錯誤,編譯的問題等等

如何來創(chuàng)建一個 C++ 語言的基本的控制臺應用程序呢?

首先到菜單里,File -> New -> Project,會打開如下的窗口:

可以看到,Code::Blocks 支持非常多的程序類型,這些程序類型用到不同的庫,比如 SDL(開發(fā) 2D 程序),OpenGL(開發(fā) 3D 程序),Qt 和 wxWidgets,等等。

目前,這些圖標很多都只是好看而已,因為你還沒安裝對應的庫,所有不能用。暫時我們只用最基本的 Console application(控制臺應用,簡單來說就是會彈出一個框,里面顯示程序運行的結果)。

選擇 Console application,點擊 Go 按鈕到下一步:

Project Title 里面填寫你要創(chuàng)建的項目名稱,我們填的是著名的 HelloWorld。Folder to create project in 是選擇項目存放的路徑。

點擊 Next 到下一步:

這里我們不必更改什么,默認就好。點擊 Finish(完成)結束配置,Code::Blocks 就會創(chuàng)建你的第一個項目了。

Visual Studio


下載 Visual Studio,推薦去官方下載頁面 https://visualstudio.microsoft.com/downloads 。選擇適合你的操作系統(tǒng)的版本來下載。

?大家可以去參考網(wǎng)上的安裝和使用圖文教程。

安裝完運行后應該是與 Code::Blocks 類似的布局:

Xcode


macOS 操作系統(tǒng)里有不少 IDE,但是 Xcode 卻是廣大蘋果用戶的最愛。

不是所有的蘋果用戶都是程序員,所以蘋果沒有在 macOS 系統(tǒng)里預裝 Xcode,你需要到 Mac App Store(應用商店)下載 Xcode(需要有蘋果賬戶,沒有可以注冊一個)。

安裝很方便,只要去 App Store 搜索 Xcode,然后點擊 Install(安裝),就安裝到應用程序里了。將 Xcode 運行起來:

然后選擇 Create a new Xcode project(創(chuàng)建一個新的 Xcode 項目),會彈出如下窗口:

選擇 OS X -> Application -> Command Line Tool,點擊 Next 到下一步:

Project Name 里填寫項目名稱,我們填了 HelloWorldLanguage(語言)選擇 C++ 語言,點 Next 下一步,會讓你選擇項目文件夾的存放路徑,隨便選擇。然后點擊 Finish 完成。

項目打開之后,點擊三角形按鈕,運行,可以看到輸出了 Hello World!

強大的 Visual Studio Code


對了,順便一提,現(xiàn)在開發(fā) C++,你也可以使用 Visual Studio Code(簡稱 VS Code)這個微軟開源的代碼編輯器。

雖說 VS Code 本身是一個代碼編輯器,但是它豐富的插件卻可以將其變成一個不俗的 IDE。VS Code 跨平臺(在 Windows,Linux 和 macOS 中都可以運行),體積小,速度快,現(xiàn)在已經(jīng)成為了很多開發(fā)者的最愛。

如果你不想安裝 Visual Studio 這樣比較大型的 IDE,也可以試試 VS Code。

VS Code 的官網(wǎng)是 https://code.visualstudio.com 。下載后安裝非常簡單,就和安裝普通軟件沒什么區(qū)別。

打開 VS Code 后,針對某種編程語言例如 C++,只需要安裝對應的官方插件(由微軟開發(fā)),即可運行和調試該語言,也就是搖身一變成為該語言的 IDE 了。

例如我在 VS Code 中安裝了微軟官方的 C++ 插件。

這些年微軟自從 薩提亞·納德拉(Satya Nadella)擔任 CEO 之后,逐漸擁抱開源,確實為互聯(lián)網(wǎng)領域做出了不少貢獻。

4. 總結


  1. 一個程序要從開始編寫到能夠運行,一般來說需要三種工具:文本編輯器,編譯器,調試器(對于 Python 這樣的解釋性語言,就不需要編譯了。當然了,其實要深究的話,Python 也是和 Java 類似的,先編譯為字節(jié)碼,再被 Python 虛擬機解釋執(zhí)行的)。

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

  3. CLion,Eclipse,Code::Blocks,Visual Studio,Xcode 是著名的 IDE。當然還有很多優(yōu)秀的 IDE,就不一一介紹了。IDE 只是工具。你也可以用 Vim,Emacs,Sublime,VS Code,Atom 這類文本編輯器來寫 C++ 程序。VS Code 通過安裝 C++ 插件,可以變成輕量級的 C++ IDE。

  4. 學習這門課的時候,你完全可以隨自己意思來選擇你的開發(fā)環(huán)境,不必一定和我一樣。

5. 第一部分第三課預告


今天的課就到這里,一起加油吧!

下一課:C++探索之旅 | 第一部分第三課:你的第一個C++程序


我是 謝恩銘,公眾號「程序員聯(lián)盟」(微信號:coderhub)運營者,慕課網(wǎng)精英講師 Oscar 老師,終生學習者。

熱愛生活,喜歡游泳,略懂烹飪。
人生格言:「向著標桿直跑」

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容