天天看點

《C語言程式設計魔法書:基于C11标準》——第3章 C語言程式設計的環境搭建 3.1 Windows作業系統下搭建C語言程式設計環境

本節書摘來自華章計算機《c語言程式設計魔法書:基于c11标準》一書中的第3章,第3.1節,作者 陳轶,更多章節内容可以通路雲栖社群“華章計算機”公衆号檢視。

我們在第2章講述了學習c語言所必需的一些預備知識。本章将給大家介紹常用桌面作業系統下的c語言環境搭建。這裡所講述的c語言編譯器以及內建開發環境(ide)都是可合法免費下載下傳的,本書不鼓勵各位使用盜版或破解軟體,是以下面會列出下載下傳這些合法免費軟體的官方連結,大家把程式設計環境搭建完之後即可上機實踐程式設計。

windows作業系統下預設不自帶任何c語言編譯器,大家必須從網上下載下傳自己所需要的c語言編譯器。如果各位想通過c語言開發windows系統平台相關的應用,或者主要想在windows平台對c語言程式進行調試,那麼往往首選visual studio community。這款開發環境是免費的,裡面自帶了微軟自家的c語言編譯器——簡稱為msvc。不過目前msvc無法支援最新的c11标準新特性,而且即便是c99标準也是支援得比較有限,是以它并不适合學習c11最新标準。但對于c語言初學者而言,這款內建開發環境還是非常适合的。幸運的是,2017年3月微軟最新推出的visual studio community 2017包含了clang編譯器前端工具,如果我們勾選安裝的話即可使用clang來作為c語言編譯器。盡管visual studio下的clang編譯器尚處于試驗階段,但大部分功能都可用了。目前筆者測試下來,它對原子操作還沒支援好,另外像utf-8、utf-16等字元編碼問題還與windows作業系統本身相關,是以要涉及這些問題的話,我們隻能使用系統特定的接口去解決或者使用下面提到的mingw以及clang官方提供的編譯工具鍊去解決。

是以,如果大家想在windows作業系統下學習更為完整的c11标準最新特性,那麼建議下載下傳mingw,如果是64位的windows系統的話則最好下載下傳mingw-w64。如果還想學習clang編譯器文法擴充的話,也可以再下載下傳單獨的clang編譯器。

visual studio community最新版本可在微軟的visual studio官方網站下載下傳:

當我們下載下傳好visual studio community的安裝程式之後,将它打開運作。随後會看到一個選擇安裝元件的對話框。我們在該對話框的右側能看到已經勾選上的元件以及一些沒有勾選上的元件。這裡我們必須勾選上“clang/c2(實驗)”這一項,如圖3-1所示。因為不安裝clang,後面就無法用它編譯c源代碼。

《C語言程式設計魔法書:基于C11标準》——第3章 C語言程式設計的環境搭建 3.1 Windows作業系統下搭建C語言程式設計環境

安裝完成之後,我們打開visual studio community 2017,首先出現歡迎界面。visual studio在首次啟動時就會很明顯地提示我們新增賬號或用賬号登入。我們先用hotmail或msn賬号登入注冊,如果不注冊僅有30天左右的試用時間,但一旦注冊完之後就能永久使用了。我們登入完自己的賬号之後就可以開始建立一個c語言的項目工程了。

我們找到菜單欄最左邊的“檔案”,然後選擇“建立”,再點選“項目”,如圖3-2所示。

《C語言程式設計魔法書:基于C11标準》——第3章 C語言程式設計的環境搭建 3.1 Windows作業系統下搭建C語言程式設計環境

随後我們會看到建立項目的對話框。在左側邊欄中找到“visual c++”,然後選中“win32”,随後在中間欄選擇“win32 console application”,最後,在底下輸入此工程建立後存放的目錄路徑以及工程名,如圖3-3所示。

《C語言程式設計魔法書:基于C11标準》——第3章 C語言程式設計的環境搭建 3.1 Windows作業系統下搭建C語言程式設計環境

點選“ok”按鈕後進入應用設定向導界面,如圖3-4所示。

我們看到圖3-4這個界面時,先别着急點選“下一步”按鈕,應先點選左邊邊欄中的“應用程式設定”,對此進行初步配置。然後進入圖3-5所示的界面。

   

《C語言程式設計魔法書:基于C11标準》——第3章 C語言程式設計的環境搭建 3.1 Windows作業系統下搭建C語言程式設計環境

圖3-5所示的界面中,在“附加選項”中,先取消勾選“預編譯頭”,然後勾選“空項目”。最後,點選“完成”按鈕進入到我們所建立的cdemo項目工程的主界面。此時,整個工程是空的,隻有檔案夾而沒有任何檔案,需要手工建立c源檔案。用滑鼠右鍵單擊“源檔案”,選擇“添加”,然後再點選“建立項”,如圖3-6所示。

《C語言程式設計魔法書:基于C11标準》——第3章 C語言程式設計的環境搭建 3.1 Windows作業系統下搭建C語言程式設計環境

在随後彈出的如圖3-7所示的對話框中,選中中間欄中的“c++檔案(.cpp)”那一項,然後在底下“名稱”一欄輸入源檔案名。

《C語言程式設計魔法書:基于C11标準》——第3章 C語言程式設計的環境搭建 3.1 Windows作業系統下搭建C語言程式設計環境

注意: 這裡需要注意,預設檔案字尾名是.cpp,即c++源檔案,因為visual c++預設采用c++程式設計語言,是以我們這裡要手工填寫.c檔案字尾名,使得後續我們用c編譯器進行編譯建構整個控制台應用。

完成之後,我們點選“添加”按鈕,然後再次進入工程主界面,此時即可看到c源檔案的編輯界面了。

我們在進入源檔案編輯界面後,先對visual studio的文本編輯選項做些處理,以便于我們後續可以流暢地編寫代碼。如圖3-8所示,我們在上面的菜單欄找到“工具”,然後選擇“選項”。

《C語言程式設計魔法書:基于C11标準》——第3章 C語言程式設計的環境搭建 3.1 Windows作業系統下搭建C語言程式設計環境

點選進入後能看到如圖3-9所示的對話框。在左邊欄找到“文本編輯器”這個選項,然後将它展開,選中“所有語言”,随後我們勾選上“行号”,這樣,在編輯每個文本檔案時都能看到行号,便于我們查找代碼中的文法錯誤以及調試代碼用。

《C語言程式設計魔法書:基于C11标準》——第3章 C語言程式設計的環境搭建 3.1 Windows作業系統下搭建C語言程式設計環境

最後,再選中“制表符”選項,對制表符進行設定,如圖3-10所示。習慣上,我們一般将tab size設定為4個半角字元,縮進大小也是4個半角字元,然後每個制表符用4個空格代替,這樣用其他編輯器浏覽visual studio編輯過的源檔案也不會導緻格式錯亂。

《C語言程式設計魔法書:基于C11标準》——第3章 C語言程式設計的環境搭建 3.1 Windows作業系統下搭建C語言程式設計環境

接下來我們設定目前的項目工程的屬性選項。我們找到菜單欄的“項目”,然後點選“cdemo屬性”,如圖3-11所示。

《C語言程式設計魔法書:基于C11标準》——第3章 C語言程式設計的環境搭建 3.1 Windows作業系統下搭建C語言程式設計環境

在配置界面的正常頁面中(見圖3-12),先找到左上角的“配置”選項,選擇“所有配置”。這樣,我們後續做的所有配置都對debug模式與release模式同時有效。然後,在右側找到“平台工具集”,這裡需要選擇使用“visual studio 2017-clang with microsoft codegen”,這個選項使得我們對目前的項目工程使用clang編譯工具鍊進行編譯建構。

《C語言程式設計魔法書:基于C11标準》——第3章 C語言程式設計的環境搭建 3.1 Windows作業系統下搭建C語言程式設計環境

随後我們展開c/c++這一項,此時仍然需要先将左上角的“配置”設定為“所有配置”。然後找到“語言”,将“c語言标準”設定為gnu11标準。這樣我們就能在visual studio community內建開發環境下編寫調試大部分基于gnu11标準的c語言代碼了。設定如圖3-13所示。

《C語言程式設計魔法書:基于C11标準》——第3章 C語言程式設計的環境搭建 3.1 Windows作業系統下搭建C語言程式設計環境

全都設定完成之後,我們就可以編寫第一個c語言程式了。同一般c語言教程一樣,我們這裡也通過輸出一個“hello, world!”字樣,作為第一個c語言代碼的示範程式。我們輸入圖3-14中所示的代碼,然後點選工具欄中的綠色三角箭頭(圖3-14中用矩形框圈出)即可編譯運作了。在程式最後的getchar()作用在于:彈出的控制台應用不會在程式終止時馬上自動關閉,而是等使用者輸入一個回車時再關閉。

《C語言程式設計魔法書:基于C11标準》——第3章 C語言程式設計的環境搭建 3.1 Windows作業系統下搭建C語言程式設計環境

在圖3-14所示的界面中,橢圓圈出來的部分用于設定目前程式以調試模式建構還是以釋出模式建構。如果以調試模式建構,我們可以利用visual studio内建的調試器做斷點跟蹤,檢視局部對象與全局對象狀态以及寄存器狀态等,便于調試程式。如果以釋出模式建構,那麼目前程式會被大幅優化,使得程式運作性能大幅提升,但難以調試。圖3-14中,中間用矩形框圈出的部分是設定目前目标程式的執行模式,預設為x86,即32位執行模式。這裡我們将它設定成了64位執行模式。

mingw編譯器是著名開源c語言編譯器gcc對windows作業系統的一個移植版本。通過mingw,我們就可以在windows下享用大部分gcc編譯器所帶來的強大功能了。這對跨平台的c語言開發而言十分有用。下面我們就來介紹如何下載下傳安裝mingw編譯器。

然後,我們輕按兩下安裝包,初步安裝完畢後彈出對話框如圖3-15所示。綠色進度條表示已經安裝好了。

《C語言程式設計魔法書:基于C11标準》——第3章 C語言程式設計的環境搭建 3.1 Windows作業系統下搭建C語言程式設計環境

我們點選“continue”按鈕後,出現選擇安裝更多元件的對話框。我們在左側欄點選“basic”,即采用基本安裝。然後,在右側欄安裝上全部列出的元件。要選中某個安裝元件,滑鼠右鍵該包名,然後在快捷菜單中選擇“mark for installation”指令,如圖3-16所示。

《C語言程式設計魔法書:基于C11标準》——第3章 C語言程式設計的環境搭建 3.1 Windows作業系統下搭建C語言程式設計環境

全都選擇好之後,我們最後更新剛選好的安裝包。我們在菜單欄選中“installation”,然後點選“update catalogue”,如圖3-17所示。

《C語言程式設計魔法書:基于C11标準》——第3章 C語言程式設計的環境搭建 3.1 Windows作業系統下搭建C語言程式設計環境

之後會彈出如圖3-18所示的界面,點選最左邊的“review changes”按鈕,會彈出如圖3-19所示的對話框。

《C語言程式設計魔法書:基于C11标準》——第3章 C語言程式設計的環境搭建 3.1 Windows作業系統下搭建C語言程式設計環境

點選“apply”按鈕之後,就會下載下傳安裝設定更新後的安裝包。等待全都安裝完畢後,點選“close”按鈕,退出整個安裝程式。

《C語言程式設計魔法書:基于C11标準》——第3章 C語言程式設計的環境搭建 3.1 Windows作業系統下搭建C語言程式設計環境

安裝結束後,不要着急使用,而是先将mingw的bin檔案夾注冊到環境變量中。先打開“檔案資料總管”,在左側欄中找到“此電腦”或“我的電腦”,滑鼠右鍵單擊它,選擇“屬性”,進入後點選左側的“進階系統設定”,如圖3-20所示。

《C語言程式設計魔法書:基于C11标準》——第3章 C語言程式設計的環境搭建 3.1 Windows作業系統下搭建C語言程式設計環境

進入圖3-20的對話框之後,點選“環境變量”按鈕,進入到“環境變量”對話框。我們在“系統變量”區域選中“path”變量,然後點選“編輯”按鈕,彈出“編輯系統變量”對話框。在“變量值”中往後添加剛才安裝後的mingw中的bin檔案夾所在目錄。在環境變量中的每個值之間用半角分号“;”進行分隔,如圖3-21所示。

《C語言程式設計魔法書:基于C11标準》——第3章 C語言程式設計的環境搭建 3.1 Windows作業系統下搭建C語言程式設計環境

完成之後,我們就可以打開控制台程式(方法是右鍵桌面上左下角“開始”按鈕,然後選擇指令提示符),然後進入要編譯的c源檔案所在的目錄。然後用gcc指令對指定c源檔案進行編譯建構,如圖3-22所示。

這裡,我們借用之前在visual studio community下編輯好的源檔案test.c。我們先用cd指令定位到test.c所在的目錄。然後用gcc --version指令檢視目前gcc編譯器的版本。最後,用gcc -std=gnu11 test.c進行編譯,最終在目前目錄生成a.exe可執行檔案。我們直接鍵入a,回車,即可看到程式輸出結果。

mingw-w64的安裝、設定過程與32位的mingw類似,這裡不再贅述。

llvm(low level virtual machine)起源于一個大學項目,它是一個編譯器基礎架構項目,用于設計一組具有良好定義的、可重用的庫。llvm起先用于替代gcc(這裡的gcc是指gnu compiler collection)棧中的代碼生成器,然後對gcc中已有的許多編譯器進行修改以适配llvm。後來llvm發起了開發一個全新的适用于不少程式設計語言的編譯器前端,稱為clang。clang主要支援c、c++、objective-c等程式設計語言,并且主要由apple公司大力支援和維護。llvm與clang都基于bsd許可證,比gpl更寬松。正因如此,現在許多硬體商都逐漸開始投入對llvm的支援,像khronos開放标準組織也基于llvm ir(intermediate representation)開發出了自己的一套spir-v。clang編譯器在文法上力争支援各大主流編譯器的文法擴充,包括gcc和msvc,是以微軟也已經把clang納入visual studio內建開發環境的工具集中。

《C語言程式設計魔法書:基于C11标準》——第3章 C語言程式設計的環境搭建 3.1 Windows作業系統下搭建C語言程式設計環境
《C語言程式設計魔法書:基于C11标準》——第3章 C語言程式設計的環境搭建 3.1 Windows作業系統下搭建C語言程式設計環境

由于clang主要是一個編譯器前端,是以它需要依賴其他編譯器的連接配接器以及某些運作時庫。是以,我們光安裝clang是無法直接成功建構應用程式的,因而我們要使用clang的話,必須在此之前先把mingw安裝好。mingw是32位的,是以為了二進制相容,我們所選取的clang也必須是32位的。當然,如果之前安裝的是64位的mingw-w64,那麼這裡需要下載下傳安裝64位的clang。

安裝clang的過程非常簡單,可根據安裝向導簡單地做些選擇即可完成安裝。安裝完成後,可以去“系統”裡的環境變量中看,把llvm目錄下的bin檔案夾的路徑添加到path環境變量中,如圖3-24所示。然後就可以再次使用指令行工具直接編譯運作程式了。

《C語言程式設計魔法書:基于C11标準》——第3章 C語言程式設計的環境搭建 3.1 Windows作業系統下搭建C語言程式設計環境

繼續閱讀