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

依你看奏甫,對(duì)編程來說,什么軟件是必要的呢凌受?

如果你認(rèn)真學(xué)了上一課阵子,那你至少可以說出一種吧。

對(duì)了胜蛉,就是編譯器挠进。這個(gè)重要的程序可以把你的源代碼(用高級(jí)語言如 C語言寫的指令)轉(zhuǎn)換成電腦可以理解的二進(jìn)制碼(只包含 0 和 1 的,類似 01100110001111011101010 )誊册。

上一課我們也提了一下领突,每種高級(jí)語言都有對(duì)應(yīng)的編譯器(當(dāng)然,對(duì)于 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 Express(現(xiàn)在改名叫 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”睹遥可以在 www.eclipse.org/downloads/p… 下載到猴伶。

  • 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)惠,請(qǐng)見 www.jetbrains.com/idea/buy/#d… 若厚。

Code::Blocks

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

不過既然學(xué)編程疤估,就盡量把英語這關(guān)過了,也不需要太厲害的英語乞封,基礎(chǔ)就好。畢竟?jié)h化版有的翻譯不到位岗憋,可能會(huì)影響使用肃晚。而且好的編程資源基本都是英語的。

下載 Code::Blocks

先去 Code::Blocks 的官方下載頁面: www.codeblocks.org/downloads/b… 仔戈。

  • Windows 用戶請(qǐng)下載 .exe 結(jié)尾的文件关串, 請(qǐng)注意要下載名字里有 mingw 的那個(gè) (比如 codeblocks-20.03mingw-setup.exe)拧廊,因?yàn)槿绻麤]有 mingw 這幾個(gè)字母的版本不包含編譯器,就會(huì)很麻煩晋修。

  • Linux 用戶請(qǐng)下載對(duì)應(yīng)你的操作系統(tǒng)的版本吧碾。

  • 蘋果 macOS 用戶請(qǐng)下載對(duì)應(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)槟氵€沒安裝對(duì)應(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,推薦去官方下載頁面 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(需要有蘋果賬戶掺喻,沒有可以注冊(cè)一個(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

對(duì)了瓮增,順便一提怎棱,現(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)是 code.visualstudio.com 轰驳。下載后安裝非常簡單,就和安裝普通軟件沒什么區(qū)別。

打開 VS Code 后滑废,針對(duì)某種編程語言例如 C++,只需要安裝對(duì)應(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)昙篙。

其實(shí)做為一個(gè)學(xué)習(xí)者腊状,有一個(gè)學(xué)習(xí)的氛圍跟一個(gè)交流圈子特別重要這里我推薦一個(gè)C/C++基礎(chǔ)交流583650410,不管你是小白還是轉(zhuǎn)行人士歡迎入駐苔可,大家一起交流成長缴挖。



?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市焚辅,隨后出現(xiàn)的幾起案子映屋,更是在濱河造成了極大的恐慌,老刑警劉巖同蜻,帶你破解...
    沈念sama閱讀 216,470評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件棚点,死亡現(xiàn)場離奇詭異,居然都是意外死亡湾蔓,警方通過查閱死者的電腦和手機(jī)瘫析,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,393評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來默责,“玉大人贬循,你說我怎么就攤上這事∩邓浚” “怎么了甘有?”我有些...
    開封第一講書人閱讀 162,577評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長葡缰。 經(jīng)常有香客問我亏掀,道長,這世上最難降的妖魔是什么泛释? 我笑而不...
    開封第一講書人閱讀 58,176評(píng)論 1 292
  • 正文 為了忘掉前任滤愕,我火速辦了婚禮,結(jié)果婚禮上怜校,老公的妹妹穿的比我還像新娘间影。我一直安慰自己,他們只是感情好茄茁,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,189評(píng)論 6 388
  • 文/花漫 我一把揭開白布魂贬。 她就那樣靜靜地躺著巩割,像睡著了一般。 火紅的嫁衣襯著肌膚如雪付燥。 梳的紋絲不亂的頭發(fā)上宣谈,一...
    開封第一講書人閱讀 51,155評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音键科,去河邊找鬼闻丑。 笑死,一個(gè)胖子當(dāng)著我的面吹牛勋颖,可吹牛的內(nèi)容都是我干的嗦嗡。 我是一名探鬼主播,決...
    沈念sama閱讀 40,041評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼饭玲,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼侥祭!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起茄厘,我...
    開封第一講書人閱讀 38,903評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤卑硫,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后蚕断,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體欢伏,經(jīng)...
    沈念sama閱讀 45,319評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,539評(píng)論 2 332
  • 正文 我和宋清朗相戀三年亿乳,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了硝拧。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,703評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡葛假,死狀恐怖障陶,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情聊训,我是刑警寧澤抱究,帶...
    沈念sama閱讀 35,417評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站带斑,受9級(jí)特大地震影響鼓寺,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜勋磕,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,013評(píng)論 3 325
  • 文/蒙蒙 一妈候、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧挂滓,春花似錦苦银、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,664評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽纺念。三九已至,卻和暖如春想括,著一層夾襖步出監(jiān)牢的瞬間柠辞,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,818評(píng)論 1 269
  • 我被黑心中介騙來泰國打工主胧, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人习勤。 一個(gè)月前我還...
    沈念sama閱讀 47,711評(píng)論 2 368
  • 正文 我出身青樓踪栋,卻偏偏與公主長得像,于是被迫代替她去往敵國和親图毕。 傳聞我的和親對(duì)象是個(gè)殘疾皇子夷都,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,601評(píng)論 2 353