【C++探索之旅】第一部分第二課:C++編程的必要軟體,之旅第一部分

來源:互聯網
上載者:User

【C++探索之旅】第一部分第二課:C++編程的必要軟體,之旅第一部分




內容簡介

1、第一部分第二課:C++編程的必要軟體

2、第一部分第三課預告:第一個C++程式


C++編程的必要軟體


經過上一課之後,大家是不是摩拳擦掌,準備大幹一場了呢。


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



編程的必要工具


依你看,什麼軟體對編程來說是必要的呢?如果你認真學了上一課,那你至少可以說出一種吧。


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


上一課我們也提了一下,每種進階語言都有對應的編譯器(當然對於Python這樣的解釋性語言,就不需要編譯了),光是C++語言的編譯器就有很多。比較常用的有G++(GNU C++ Compiler。GNU是國際著名的自由軟體基金會,GNU是“GNU is Not Unix” (GNU不是Unix)的遞迴縮寫法,老外總是那麼頑皮,起名字也喜歡整一些編程的知識,比如Linux就是“Linux Is Not Unix”(Linux不是Unix)的遞迴。要不就用很多動物的名字或表徵圖,特別好玩)。



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


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


  • 文字編輯器:用來寫原始碼的工具。理論上Windows作業系統的記事本或者Linux下的VI編輯器都可以作為文字編輯器來使用。但是,最好還是用一些更進階點的文字編輯器,比如可以支援代碼高亮顯示,方便你在代碼間跳轉等。個人非常推薦的文字編輯器是Emacs,真的非常強,跨平台(蘋果Mac,Windows,Linux等),自由定製,各種快速鍵組合,收發郵件,看視頻,瀏覽網頁,瀏覽PDF,沒有你做不到,只有想不到(略有誇張...),可以讓你編輯代碼非常高效。我之前使用的是VIM,也是很不錯的,但是後來用了Emacs,感覺還是更喜歡Emacs一些。當然這見仁見智。還有一個文字編輯器:Notepad++也是挺好的,經過配置和安裝一些外掛程式,可以很強大,不過貌似沒有蘋果電腦版本。


  • 編譯器:已經提過了,用來轉換(或叫編譯)你的原始碼成為二進位碼。


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


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


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


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

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

  • 使用一種軟體,這種軟體集合了這三種工具的功能。這種軟體被稱為IDE(Integrated Development Environment 整合式開發環境)。


一開始你可能會難以抉擇,到底用哪種呢?即使選擇了用IDE,也會糾結到底用哪一個IDE好呢。其實我們可以肯定的是:不論你選擇哪種工具,你都可以編寫你想要的程式。只是效率,個人習慣和特定平台要求不同罷了。


個人淺見:

如果剛接觸C++語言,盡量在Linux的命令列裡學習C++語言編程。一開始不要過分依賴IDE。


因為IDE做得太好了,都有提示,代碼自動補全,自動幫你添加代碼,你就不能學到很多,也記不牢。等編程水平好了一些,再用IDE不遲,那個時候IDE可以提高你的編程效率。一開始用emacs或者vim編寫C++語言,用G++編譯C++語言,用GDB(GNU Debugger)調試C++語言,是不錯的選擇。


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


選擇你的IDE


我們覺得有必要向大家展示幾個最著名的IDE,這幾個都是免費的(只買對的,不選貴的)


  • Code::Blocks:個人比較喜歡的一款IDE,免費,開源,跨平台。在之後的課程裡,我們會用Code::Blocks來做開發,因為Code::Blocks的開發環境搭建起來太快了,不需要什麼配置。

    可以運行在蘋果Mac,Windows,Linux等大多數作業系統上


  • Visual Studio:基礎版本是收費的。但是幸好有一個Visual Studio Express的版本是免費的。VS功能很完備,而且調試器很強大。

    只能運行在Windows作業系統上


  • Xcode:作為蘋果的當家IDE,不得不說Xcode真的做得太棒了。可以用來開發基本的小程式,也可以編寫iPhone和iPad的App(模擬器速度超快),和智能手錶應用,還可以和其他如Unity 3D引擎配合來編寫遊戲。

    只能運行在蘋果Mac OS X作業系統上



Code::Blocks


Code::Blocks是一款很不錯的IDE,不過目前只有英文版,當然網上也有漢化版本,不過既然學編程,就盡量把英語這關過了,也不需要太厲害的英語,基礎就好。畢竟漢化版有的翻譯不到位,可能會影響使用。而且好的編程資源基本都是英語的。


下載Code::Blocks


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

  • Windows使用者請下載 .exe 的檔案,請注意要下載名字裡有 mingw 的那個(codeblocks-13.12mingw-setup.exe),因為如果沒有mingw這幾個字母的版本不包含編譯器,就會很麻煩。

  • Linux使用者請下載對應你的作業系統的版本

  • 蘋果Mac使用者請下載 CodeBlocks-13.12-mac.zip



安裝運行Code::Blocks


Code::Blocks的安裝太簡單了,就跟安裝QQ沒什麼區別,一路預設到底就好。

安裝完之後雙擊運行,你可以看到如的介面



中標註了四個地區:

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

  2. 專案檔列表區:左邊的欄裡面顯示了你的項目的所有檔案

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

  4. 通知欄:會看到啟動並執行錯誤,編譯的問題等等


如何來建立一個C++語言的基本的控制台應用程式呢?


首先到菜單裡,File -> New -> Project,會開啟如下的視窗



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


目前,這些表徵圖很多都只是好看而已,因為你還沒安裝對應的庫,所有不能用。我們會在後續課程開發基於SDL庫的遊戲。暫時我們只用最基本的Console application(控制台應用,簡單來說就是會彈出一個框,裡面顯示程式啟動並執行結果)。


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



“Project Title”裡面填寫你要建立的項目名稱,我們填的是著名的 HelloWorld。“Folder to create project in” 是選擇項目存放的路徑。

點擊Next到下一步,



這裡我們不必更改什麼,預設就好。點擊Finish(完成)結束配置,Code::Blocks就會建立你的第一個項目了。



Visual Studio


下載 Visual Studio Express,去官方下載頁面 http://www.visualstudio.com/products/visual-studio-express-vs


選擇適合你的作業系統的版本來下載。


因為小編是在蘋果電腦上編輯文章的,所以就不多做示範了。請大家去參考網上的安裝和使用圖文教程。


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




Xcode


Mac作業系統裡有不少IDE,但是Xcode卻是廣大蘋果使用者的最愛。

不是所有的蘋果使用者都是程式員,所以蘋果沒有在Mac系統裡預裝Xcode,你需要到Mac App Store(市集)下載Xcode(需要有蘋果賬戶,沒有可以註冊一個)。


安裝很方便,只要去App Store搜尋Xcode,然後點擊Install(安裝),就安裝到應用程式裡了。將Xcode運行起來



然後選擇 Create a new Xcode project(建立一個新的Xcode項目),會彈出如下視窗



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




Project Name裡填寫項目名稱,我們填了HelloWorld。Language(語言)選擇 C++ 語言,點Next下一步,會讓你選擇專案檔夾的存放路徑,隨便選擇。然後點擊Finish完成。





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




總結


  1. 一個程式要從開始編寫到能夠運行,一般來說需要三種工具:文字編輯器,編譯器,調試器(當然對於Python這樣的解釋性語言,就不需要編譯了)

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

  3. Code::Blocks,Visual Studio(或Visual C++),Xcode是最著名的IDE,當然還有很多優秀的IDE(例如 Eclipse),就不一一介紹了。IDE只是工具。



第一部分第三課預告


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

下一課我們學習:第一個C++程式



程式員聯盟社區

目前有一個和一個QQ群(群160人以上,QQ群530人以上),凡是對編程感興趣的朋友都可以加,大家可以交流,學習,互動,討論編寫的程式的原始碼,編程問答等。


群(程式員聯盟),加群請私信我(群人數超過100之後,不能通過掃描二維碼加入了,只能私信我,謝謝)


QQ群: 413981577 (1000人群)


QQ群檔案裡有很多編程書籍PDF和其他資料。掃描下面二維碼加QQ:



我們還建立了一個公用的百度雲端硬碟,2TB容量,已有很多優秀編程資源,大家也可以上傳。連結加群之後會發送。


百度貼吧 【程式員聯盟】 歡迎您加入,交流編程,討論代碼,共用資源,已經有很多話題。吧主就是小編。

http://tieba.baidu.com/f?kw=%E7%A8%8B%E5%BA%8F%E5%91%98%E8%81%94%E7%9B%9F&ie=utf-8

點擊左下角【閱讀原文】即可進入 【程式員聯盟】 百度貼吧


《程式員聯盟》的微社區,方便大家提問和互動。可以關注一下。

微社區地址和二維碼如下:

http://m.wsq.qq.com/264152148


謝謝!



程式員聯盟 公眾號*您若覺得本文不錯,請點擊畫面右上方《···》按鈕“分享到朋友圈”或“發送給朋友”

*新朋友請關注「程式員聯盟」搜公眾號  ProgrammerLeague

小編號:frogoscar

小編QQ號:  379641629

小編郵箱:    enmingx@gmail.com

程式員聯盟QQ群:413981577

程式員聯盟群:先加我


有朋友反映看手機端的文章太累,其實是可以用瀏覽器網頁來看的:

方法1. 點擊畫面右上方的《···》按鈕,然後選擇“複製連結”,再把連結黏貼到你的瀏覽器裡面或用郵件發送給自己,就可以在電腦的瀏覽器裡開啟了



方法2. 頭條網www.toutiao.com,搜尋我的自媒體“程式員聯盟”,內有所有文章,也可以直接進這個連結:http://www.toutiao.com/m3750422747/


方法3. 我的51CTO部落格,CSDN部落格和部落格園連結(所有文章都在上面)
http://4526621.blog.51cto.com

http://blog.csdn.net/frogoscar

www.cnblogs.com/frogoscar


如何查看所有文章

點擊“查看公眾號”,再點擊“查看曆史訊息





聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.