Android google java 开源 程序员 php wordpress 云计算 编程 Python Ubuntu Firefox Windows nginx centos linux apache 微软 shell mysql

《C語言編程魔法書:基於C11標準》——第3章 C語言編程的環境搭建 3.1 Windows操作系統下搭建C語言編程環境

第3章

C語言編程的環境搭建

我們在第2章講述了學習C語言所必需的一些預備知識。本章將給大家介紹常用桌面操作系統下的C語言環境搭建。這裏所講述的C語言編譯器以及集成開發環境(IDE)都是可合法免費下載的,本書不鼓勵各位使用盜版或破解軟件,所以下面會列出下載這些合法免費軟件的官方鏈接,大家把編程環境搭建完之後即可上機實踐編程。

3.1 Windows操作系統下搭建C語言編程環境

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編譯器。

3.1.1 安裝Visual Studio Community 2017

Visual Studio Community最新版本可在微軟的Visual Studio官方網站下載:

https://www.visualstudio.com/thank-you-downloading-visual-studio/?sku=Community&rel=15。

當我們下載好Visual Studio Community的安裝程序之後,將它打開運行。隨後會看到一個選擇安裝組件的對話框。我們在該對話框的右側能看到已經勾選上的組件以及一些沒有勾選上的組件。這裏我們必須勾選上“Clang/C2(實驗)”這一項,如圖3-1所示。因為不安裝Clang,後面就無法用它編譯C源代碼。


image

安裝完成之後,我們打開Visual Studio Community 2017,首先出現歡迎界面。Visual Studio在首次啟動時就會很明顯地提示我們註冊賬號或用賬號登錄。我們先用Hotmail或MSN賬號登錄註冊,如果不註冊僅有30天左右的試用時間,但一旦註冊完之後就能永久使用了。我們登錄完自己的賬號之後就可以開始新建一個C語言的項目工程了。

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

image

隨後我們會看到新建項目的對話框。在左側邊欄中找到“Visual C++”,然後選中“Win32”,隨後在中間欄選擇“Win32 Console Application”,最後,在底下輸入此工程創建後存放的目錄路徑以及工程名,如圖3-3所示。

image

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

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

   
image

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

在随后弹出的如图3-7所示的对话框中,选中中间栏中的“C++文件(.cpp)”那一项,然后在底下“名称”一栏输入源文件名。

image

註意: 這裏需要註意,默認文件後綴名是.cpp,即C++源文件,因為Visual C++默認采用C++編程語言,因此我們這裏要手工填寫.c文件後綴名,使得後續我們用C編譯器進行編譯構建整個控制臺應用。

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

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

image

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

image

最後,再選中“制表符”選項,對制表符進行設置,如圖3-10所示。習慣上,我們一般將Tab Size設置為4個半角字符,縮進大小也是4個半角字符,然後每個制表符用4個空格代替,這樣用其他編輯器瀏覽Visual Studio編輯過的源文件也不會導致格式錯亂。

image

接下来我们设置当前的项目工程的属性选项。我们找到菜单栏的“项目”,然后点击“cdemo属性”,如图3-11所示。


image

在配置界面的常規頁面中(見圖3-12),先找到左上角的“配置”選項,選擇“所有配置”。這樣,我們後續做的所有配置都對Debug模式與Release模式同時有效。然後,在右側找到“平臺工具集”,這裏需要選擇使用“Visual Studio 2017-Clang with Microsoft CodeGen”,這個選項使得我們對當前的項目工程使用Clang編譯工具鏈進行編譯構建。

image

隨後我們展開C/C++這一項,此時仍然需要先將左上角的“配置”設置為“所有配置”。然後找到“語言”,將“C語言標準”設置為GNU11標準。這樣我們就能在Visual Studio Community集成開發環境下編寫調試大部分基於GNU11標準的C語言代碼了。設置如圖3-13所示。

image

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

image

在圖3-14所示的界面中,橢圓圈出來的部分用於設置當前程序以調試模式構建還是以發布模式構建。如果以調試模式構建,我們可以利用Visual Studio內建的調試器做斷點跟蹤,查看局部對象與全局對象狀態以及寄存器狀態等,便於調試程序。如果以發布模式構建,那麽當前程序會被大幅優化,使得程序運行性能大幅提升,但難以調試。圖3-14中,中間用矩形框圈出的部分是設置當前目標程序的執行模式,默認為x86,即32位執行模式。這裏我們將它設置成了64位執行模式。

3.1.2 安裝MinGW編譯器

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

首先,我們直接進入這個網址下載安裝文件:http://sourceforge.net/projects/mingw/f?iles/latest/download?source=f?iles 。這個文件非常小,因為MinGW采用的是在線安裝模式,萃取線上各個最新release版本的組件進行下載。

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

image

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

image

全都选择好之后,我们最后更新刚选好的安装包。我们在菜单栏选中“Installation”,然后点击“Update Catalogue”,如图3-17所示。

image

之后会弹出如图3-18所示的界面,点击最左边的“Review Changes”按钮,会弹出如图3-19所示的对话框。

image

点击“Apply”按钮之后,就会下载安装设置更新后的安装包。等待全都安装完毕后,点击“Close”按钮,退出整个安装程序。

image

安裝結束後,不要著急使用,而是先將MinGW的bin文件夾註冊到環境變量中。先打開“文件資源管理器”,在左側欄中找到“此電腦”或“我的電腦”,鼠標右鍵單擊它,選擇“屬性”,進入後點擊左側的“高級系統設置”,如圖3-20所示。

image

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


image

完成之後,我們就可以打開控制臺程序(方法是右鍵桌面上左下角“開始”按鈕,然後選擇命令提示符),然後進入要編譯的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是32位的C語言編譯器,所以它構建出來的程序也是32位的。如果各位用的Windows操作系統是64位的,那麽可以使用Mingw-w64編譯器。下載地址如下:https://sourceforge.net/projects/mingw-w64/f?iles/latest/download?source=f?iles。

Mingw-w64的安裝、設置過程與32位的MinGW類似,這裏不再贅述。

3.1.3 安裝LLVM Clang編譯器

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集成開發環境的工具集中。

image

我們首先在LLVM Clang官網下載最新穩定發布版本的Clang安裝包:http://llvm.org/releases/download.html 。然後,要註意的是選擇32位版本,如圖3-23所示。
image

由於Clang主要是一個編譯器前端,因此它需要依賴其他編譯器的連接器以及某些運行時庫。所以,我們光安裝Clang是無法直接成功構建應用程序的,因而我們要使用Clang的話,必須在此之前先把MinGW安裝好。MinGW是32位的,因此為了二進制兼容,我們所選取的Clang也必須是32位的。當然,如果之前安裝的是64位的MingW-W64,那麽這裏需要下載安裝64位的Clang。

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

延伸阅读

    评论