假期孩子想學(xué)習(xí) C 語言編程,讓幫著搭建一個(gè)簡(jiǎn)單好用的 C 語言開發(fā)環(huán)境。雖然筆記本配置的是Windows 7 操作系統(tǒng),但當(dāng)前可供選擇的支持Windows 7系統(tǒng)的 C/C++ 語言開發(fā)環(huán)境還不少,如: Visual Studio系列、Dev-C++、Code::Blocks、Eclipse for C/C++、NetBeans、VS Code+擴(kuò)展等十幾種。于是計(jì)劃就此寫個(gè)Windows平臺(tái)搭建C/C++語言開發(fā)環(huán)境系列文章,面向廣大C語言編程初學(xué)者,分別介紹幾種主流常用的Windows平臺(tái)C/C++開發(fā)環(huán)境的搭建(下載、安裝、配置)和簡(jiǎn)單開發(fā)(源碼編輯、編譯、運(yùn)行和調(diào)試),以供其了解和學(xué)習(xí)。
本系列第一篇已經(jīng)對(duì) Dev-C++ 集成開發(fā)環(huán)境進(jìn)行了分享介紹,本文接著分享的是 Code::Blocks ,它是一款免費(fèi)開源的、跨平臺(tái)的、全功能的C/C++語言集成開發(fā)環(huán)境。
本次分享內(nèi)容的目錄如下:
前言
基本概念(IDE、編譯)
Code::Blocks 概述(簡(jiǎn)介、特性)
Code::Blocks 安裝(下載、安裝)
Code::Blocks 設(shè)置(中文設(shè)置、編譯器設(shè)置、調(diào)試器設(shè)置)
Code::Blocks 軟件窗口界面簡(jiǎn)介
Code::Blocks 開發(fā)簡(jiǎn)單示例(編輯、構(gòu)建、運(yùn)行)
Code::Blocks 點(diǎn)評(píng)
結(jié)束語
集成開發(fā)環(huán)境(Integrated Development Environment,簡(jiǎn)稱IDE)是一種輔助程序開發(fā)人員開發(fā)軟件的工具軟件,通常包括代碼編輯器、編譯器、調(diào)試器和圖形用戶界面等工具,集成了代碼編輯、編譯、運(yùn)行和調(diào)試等功能于一身,可以讓開發(fā)人員通過此單一集成環(huán)境即可輕松完成程序開發(fā)。
可以對(duì)IDE簡(jiǎn)單分類如下:
該類IDE只針對(duì)特定編程語言,如 Visual Basic針對(duì)Basic語言、Code::Blocks針對(duì)C/C++語言等。
該類IDE內(nèi)含支持多種編程語言的多種編譯器/調(diào)試器,如微軟的Visual Studio 2019集合開發(fā)、分析、調(diào)試、測(cè)試、協(xié)作、部署于一身,支持C/C++、Python、JavaScript、C#等多種語言的開發(fā)),適合專業(yè)開發(fā)人員。
該類IDE本身只是代碼/文本編輯器,但可通過安裝擴(kuò)展的方式調(diào)用多種編譯器/調(diào)試器,來打造強(qiáng)大的擴(kuò)展IDE。如:Vim、Atom、Visual Studio Code等。
我們知道計(jì)算機(jī)只能識(shí)別二進(jìn)制機(jī)器語言,而開發(fā)者一般編寫的是高級(jí)語言,但機(jī)器本身并不能直接識(shí)別高級(jí)語言,這時(shí)就需要將高級(jí)語言轉(zhuǎn)化成機(jī)器能識(shí)別的二進(jìn)制機(jī)器語言,這個(gè)過程就叫編譯。
實(shí)現(xiàn)編譯的工具叫做編譯器(Compiler),最為知名的編譯器為GCC(GNU Compiler Collection,GNU編譯器套裝),是一套由GNU開發(fā)的編程語言編譯器。
C語言編譯過程分成四個(gè)步驟:
官方網(wǎng)址:http://www.codeblocks.org
Code::Blocks 是一款免費(fèi)的、開源的、跨平臺(tái)的、功能強(qiáng)大的 C , C++ 和 Fortran 集成開發(fā)環(huán)境(IDE),力求為開發(fā)者(個(gè)人或團(tuán)隊(duì))提供一個(gè)能滿足各種需求的優(yōu)秀編程環(huán)境(旨在滿足其用戶的最苛刻需求)。
Code::Blocks 由純粹的 C++ 語言開發(fā)完成,它使用了著名的 GUI庫 wxWidgets (最新版本的 Code::Blocks 20.03版采用了wxWidgets 3.1.3 unicode版)。對(duì)于追求完美的 C++ 程序員,再也不必忍受 Eclipse 的緩慢,再也不必忍受 VS.NET 的龐大和高昂的價(jià)格。
Code::Blocks 的插件構(gòu)架設(shè)計(jì)使得開發(fā)者可以編寫插件,從而添加各種各樣的功能(例:插件已經(jīng)提供了編譯、調(diào)試功能)。
Code::Blocks 被設(shè)計(jì)為完全可配置的,它提供了許多工程模板(包括:控制臺(tái)應(yīng)用、D應(yīng)用、Fortran應(yīng)用、Java應(yīng)用、靜態(tài)庫、動(dòng)態(tài)連接庫、共享庫、Fortran庫、內(nèi)核模塊驅(qū)動(dòng)、Code::Blocks插件、Win32 GUI項(xiàng)目、wxWidgets項(xiàng)目、GTK+項(xiàng)目、QT5項(xiàng)目、Direct/X項(xiàng)目、FLTK項(xiàng)目、OpenGL項(xiàng)目、OpenCV項(xiàng)目等約40種模板),并且支持用戶自定義工程模板。
Code::Blocks 跨平臺(tái)具有一致的外觀、和操作手感。同時(shí)因在wxWidgets應(yīng)用中選擇UNICODE而支持中文。
Code::Blocks是可用于滿足C和C++的開發(fā)人員最苛刻需求的免費(fèi)C/ C++ IDE。這款IDE包含進(jìn)行C和C++開發(fā)所要用到的全部功能。
當(dāng)前最新穩(wěn)定版本是2020年04月03日發(fā)布的 Code::Blocks 20.03 版本。
下面詳細(xì)介紹 Code::Blocks 在 Windows 7 操作系統(tǒng)中的具體安裝過程。
官網(wǎng)下載網(wǎng)址:http://www.codeblocks.org/downloads
一、下載:
Code::Blocks官網(wǎng)推薦兩處下載網(wǎng)址:
(一)從 FossHUB 網(wǎng)址下載
(二)從 Sourceforge.net 網(wǎng)址下載
二、安裝文件說明:
從上述下載網(wǎng)址可以看到最新版本(20.03版)的Code::Blocks分別針對(duì)32位和64位各自提供5個(gè)安裝文件,下面針對(duì)64位的安裝文件說明如下:
安裝文件說明
注1:如果是零基礎(chǔ)的入門者,建議直接下載帶編譯器和調(diào)試器的安裝文件codeblocks-20.03mingw-setup.exe。
注2:如果本機(jī)已經(jīng)安裝了編譯器和調(diào)試器,則可以選擇下載不帶編譯器和調(diào)試器的安裝文件 codeblocks-20.03-setup.exe。
運(yùn)行 Code::Blocks 安裝執(zhí)行文件,按提示完成安裝(如下圖示):
Step1:進(jìn)入歡迎“窗口:
歡迎窗口
Step2: 點(diǎn)擊上圖【Next】按鈕,進(jìn)入“License Agreement”窗口,展示軟件許可協(xié)議(GPL v3):
許可協(xié)議窗口
Step3:點(diǎn)擊上圖【I Agree】按鈕,進(jìn)入“Choose Compinents”窗口,選擇要安裝的組件(建議選擇Full,全部安裝):
選擇安裝組件窗口
Step4:點(diǎn)擊上圖【Next】按鈕,進(jìn)入“Choose Install Location”窗口,設(shè)置軟件安裝路徑(可自定義,建議路徑中不包含中文名,如:C:\Develop\DevCpp):
選擇安裝路徑窗口
Step5:點(diǎn)擊上圖【Install】按鈕,真正進(jìn)入安裝過程,等待……
安裝過程窗口
Step6:提示安裝完成,點(diǎn)擊下圖【Next】按鈕進(jìn)入下一步。
提示安裝完成窗口
Step7:點(diǎn)擊上圖【Finish】按鈕結(jié)束安裝。
安裝完成窗口
在 Code::Blocks 安裝完成后,首次使用前建議對(duì)語言、編譯器、調(diào)試器進(jìn)行設(shè)置核查確認(rèn)。
針對(duì)初學(xué)者而言,開發(fā)軟件有一個(gè)熟悉的語言環(huán)境還是很重要的。 Code::Blocks 軟件是英文界面,不過網(wǎng)絡(luò)已有針對(duì)簡(jiǎn)體中文的語言包提供(壓縮包文件大小400KB,雖然還沒有100%翻譯,但已經(jīng)不影響正常使用了)。
注:有需要該簡(jiǎn)體中文語言包的朋友可以私信跟我聯(lián)系提供。
設(shè)置步驟如下:
語言文件存放目錄結(jié)構(gòu)
選擇菜單項(xiàng)
設(shè)置中文窗口
中文界面
注:如果安裝的是帶編譯器的安裝文件codeblocks-20.03mingw-setup.exe,則可以跳過本節(jié)內(nèi)容。
如果安裝的是不帶編譯器的安裝文件 codeblocks-20.03-setup.exe,則需要對(duì) Code::Blocks軟件的編譯器進(jìn)行單獨(dú)設(shè)置。
設(shè)置步驟如下:
編譯器設(shè)置窗口
注:如果安裝的是帶調(diào)試器的安裝文件codeblocks-20.03mingw-setup.exe,則可以跳過本節(jié)內(nèi)容。
如果安裝的是不帶調(diào)試器的安裝文件 codeblocks-20.03-setup.exe,則需要對(duì) Code::Blocks軟件的調(diào)試器進(jìn)行單獨(dú)設(shè)置。
設(shè)置步驟如下:
Code::Blocks 軟件窗口界面主要包括七大部分(如上圖示):
軟件窗口界面
下面介紹使用 Code::Blocks 集成開發(fā)環(huán)境開發(fā)一個(gè)簡(jiǎn)單的 C 語言示例程序(向控制臺(tái)輸出“Hello, World!”)。
一、新建
Code::Blocks 可以通過如下幾種方式新建一個(gè)源代碼文件:
本示例源碼在新建時(shí)的界面截圖如下:
新建源碼文件
二、編輯
在上圖的代碼編輯器進(jìn)行相關(guān)源碼的編輯,相關(guān)界面截圖如下:
編輯源碼文件
三、保存
Code::Blocks 可以通過如下幾種方式保存一個(gè)源代碼文件:
本示例源碼在保存后的界面截圖如下:
保存源碼文件
Code::Blocks 可以通過如下幾種方式對(duì)源碼進(jìn)行構(gòu)建:
本示例源碼在構(gòu)建時(shí)會(huì)在【日志窗口】的【構(gòu)建記錄面板】中顯示相關(guān)編譯信息(如下圖紅框內(nèi)),如果構(gòu)建無誤會(huì)在當(dāng)前位置生成可執(zhí)行文件(如:hello.exe)。
構(gòu)建截圖
Code::Blocks 可以通過如下幾種方式運(yùn)行已經(jīng)構(gòu)建(無錯(cuò))后的可執(zhí)行程序:
本示例源碼經(jīng)編譯成功運(yùn)行后,會(huì)彈出一個(gè)新的終端窗口,并在其界面上打印出“Hello, World!”(如下圖示):
運(yùn)行截圖
本人從軟件性質(zhì)、安裝卸載、功能使用、平臺(tái)支持、應(yīng)用場(chǎng)景等方面給予點(diǎn)評(píng)如下(個(gè)人淺見,僅供參考):
總結(jié):Code::Blocks也是一款比較適合C/C++初學(xué)者使用的C/C++語言集成開發(fā)環(huán)境。
相信各位 C 語言初學(xué)者們閱讀完本文后,應(yīng)該已經(jīng)對(duì)如何在 Windows 平臺(tái)安裝 Code::Blocks 集成開發(fā)環(huán)境,以及如何利用 Code::Blocks 進(jìn)行 C 語言程序簡(jiǎn)單開發(fā)(源碼編輯、構(gòu)建、運(yùn)行等)有了一個(gè)基本的了解掌握,接下來就可以進(jìn)入到 C 語言的學(xué)習(xí)應(yīng)用環(huán)節(jié)了。
本系列接下來還會(huì)對(duì)其他 C/C++語言開發(fā)環(huán)境進(jìn)行介紹,敬請(qǐng)期待!
希望本文能對(duì)您有所幫助!喜歡的話就點(diǎn)個(gè)贊加關(guān)注支持一下哈:)
codeblocks支持的GUI程序有這些,下面介紹下。介紹是我百度搜的,我只用過MFC和Win32 GUI。簡(jiǎn)單做個(gè)介紹認(rèn)識(shí)下。
FLTK
一種使用C++開發(fā)的GUI工具包
FLTK (Fast Light Tool Kit 發(fā)音為fulltick) 是一種使用C++開發(fā)的GUI工具包,它可以應(yīng)用于Unix,Linux,MS-Windows95/98/NT/2000和MacOS操作系統(tǒng)平臺(tái),相 對(duì)于其它的許多圖形接口開發(fā)工具包(如MFC、GTK、QT等),它具有體積很小、速度比較快,且有著更好的移植性。
FLTK,如同其名字所表達(dá)的:The Fast Light Toolkit,一個(gè)輕量級(jí)的GUI開發(fā)庫。但這輕量級(jí)并不代表功能的羸弱,相反,F(xiàn)LTK在具有基本的GUI功能之外,還擁有一些特殊的功能,比如跨平臺(tái)、內(nèi)置 OpenGL功能、速度更快、尺寸更小、協(xié)議寬松等。當(dāng)然,缺點(diǎn)也是有的,比如對(duì)于復(fù)雜的界面構(gòu)件支持不夠,資源支持的不足等。
FLTK 發(fā)音為 "fulltick"。
FLTK ,可以在UNIX/Linux (X11),Microsoft Windows和 MacOS X平臺(tái)運(yùn)行。
1. 提供豐富的跨平臺(tái)的GUI構(gòu)件(Widget)。有按鈕,菜單,窗口等,近六十個(gè)。
2. 支持OpenGL,提供Fl_GL_Window,支持OpenGL相關(guān)的操作。
3. 提供界面設(shè)計(jì)工具FLUID,非常方便進(jìn)行界面的設(shè)計(jì)。
4. 良好的跨平臺(tái)移植性。
5. 支持多種C++編譯器,Gcc,BC,VC等等。
6. 靈活性。FLTK本身可以定制,以滿足不同的需要。這使得FLTK在嵌入式開發(fā)上有著極大的競(jìng)爭(zhēng)力,這正是我要推薦使用FLTK的原因。 [1]
//-----------------------------------------------------------------------
GTK+
圖形工具包
最初,GTK+ 是作為另一個(gè)著名的開放源碼項(xiàng)目 —— GNU Image Manipulation Program (GIMP) —— 的副產(chǎn)品而創(chuàng)建的。在開發(fā)早期的 GIMP 版本時(shí),Peter Mattis 和 Spencer Kimball 創(chuàng)建了 GTK(它代表 GIMP Toolkit),作為 Motif 工具包的替代,后者在那個(gè)時(shí)候不是免費(fèi)的。(當(dāng)這個(gè)工具包獲得了面向?qū)ο筇匦院涂蓴U(kuò)展性之后,才在名稱后面加上了一個(gè)加號(hào)。)
GTK(Gnome Toolkit)是一套跨多種平臺(tái)的圖形工具包,按LGPL許可協(xié)議發(fā)布的。雖然最初是為GIMP寫的,但早已發(fā)展為一個(gè)功能強(qiáng)大、設(shè)計(jì)靈活的通用圖形庫。特別是被GNOME選中使得GTK+廣為流傳,成為L(zhǎng)inux下開發(fā)圖形界面的應(yīng)用程序的主流開發(fā)工具之一,當(dāng)然GTK+并不要求必須在Linux上,事實(shí)上,目前GTK+已經(jīng)有了成功的windows版本。 [1]
GTK+雖然是用C語言寫的,但是您可以使用你熟悉的語言來使用GTK+,因?yàn)镚TK+已經(jīng)被綁定到幾乎所有流行的語言上,如:C++, Guile, Perl, Python, TOM, Ada95, Objective C, Free Pascal, Eiffel等。 [1]
使用 GTK+ 這樣的庫比起編寫自己的 GUI 代碼來有多個(gè)優(yōu)勢(shì)。例如,它可以顯著節(jié)約開發(fā)時(shí)間,讓開發(fā)人員把精力集中在項(xiàng)目真正重要和真正獨(dú)特的地方,而不必重復(fù)公共的功能。對(duì)于用戶來說,這意味著他們使用的應(yīng)用程序之間具有更好的一致性:工具包能在哪使用,應(yīng)用程序就能跟到哪里。就像使用 LEGO 一樣,所有的人都使用同一兼容尺寸這一事實(shí),意味著設(shè)計(jì)可以在使用庫的人之間共享,不論他們?cè)谀睦锸褂盟?/span>
在現(xiàn)實(shí)中,現(xiàn)代的 GUI 工具包做的工作不僅僅是避免重復(fù)。它們提供了許多高級(jí)功能,用戶希望在他們的應(yīng)用程序中擁有這些功能,但是用別的方法得不到這些功能,因?yàn)樵谶@類工具包上所投入的時(shí)間和工作,要遠(yuǎn)遠(yuǎn)超過在單一應(yīng)用程序上的花費(fèi)。所以,如果在應(yīng)用程序中使用 GUI 對(duì)您來說很重要,那么請(qǐng)使用工具包。除此之外別無他法。那么,剩下的惟一問題就是,應(yīng)當(dāng)使用哪個(gè)工具包?
//--------------------------------------------------------------------------
QT4 QT5這個(gè)是知名跨平臺(tái)的開發(fā)支持庫。
//--------------------------------------------------------------------------
SmartWin
SmartWin++是一個(gè)100%免費(fèi)的c++ GUI與soap開發(fā)庫,可以用來開發(fā)基于個(gè)人電腦。
可以用來開發(fā)基于個(gè)人電腦,掌上電腦,windows mobie 或者windows CE系統(tǒng)上的界面應(yīng)用程序.使用SmartWin++即可以開發(fā)開源應(yīng)用程序,也可以用于開發(fā)商業(yè)應(yīng)用程序,得益于SmartWin++基于BSD 許可權(quán).
SmartWin++的初衷是用于替代windows的MFC與WTL庫.由于WineLib的出現(xiàn),現(xiàn)在SmartWin++同樣可以用于非windows系統(tǒng)上的開發(fā).
SmartWin++內(nèi)部大量使用了STL與boost庫,對(duì)STL完全兼容.
//------------------------------------------------------------------------------------------
Win32 GUI
這個(gè)是標(biāo)準(zhǔn)的Windows 32位 圖形應(yīng)用程序。
//-----------------------------------------------------------------------------------------
wxWidgets
wxWidgets是一個(gè)開源的跨平臺(tái)的C++構(gòu)架庫(framework),它可以提供GUI(圖形用戶界面)和其它工具。
wxWidgets在最開始是由愛丁堡(Edinburgh)大學(xué)的人工智能應(yīng)用學(xué)院開發(fā)的,主要是內(nèi)部使用,而在1992年第一次公布。 2.x版本做了很大程度的改良,并且由Julian Smart, Robert Roebling, Vadim Zeitlin, Vaclav Slavik和更多其他的人所編寫和維護(hù)。
wxWidgets的主體是由C++構(gòu)建的,但你并不是必需通過C++才能使用wxWidgets.wxWidgets擁有許多其它語言的綁定(binding),使你在用其它語言編寫程序的時(shí)候也可以使用wxWidgets.
* wxPython a Python binding,
* wxPerl a Perl binding,
* wxBasic a Basic binding,
* wxLua a Lua binding,
* wxJavaScript a JavaScript binding,
* wxJava a Java binding by Steve Perkins,
* wx4j a Java binding by Dave Dribin,
* wxRuby a Ruby binding,
* wxEiffel an Eiffel binding,
* wxHaskell a Haskell binding,
* wxEuphoria a Euphoria binding,
* wxAda the start of an Ada binding for wxWidgets.
wxwidgets是一個(gè) c++編寫的用來提供gui開發(fā)的框架。它包含一個(gè)可以支持現(xiàn)今幾乎所有操作系統(tǒng)(Version 2 currently supports all desktop versions of MS Windows, Unix with GTK+, Unix with Motif, and MacOS. An OS/2 port is in progress.)的GUI庫和其他一些很有用的工具,提供了類似MFC的功能。而且,特別要說一下,這個(gè)c++lib的新版本還提供了對(duì)掌上電腦的支持。當(dāng)然,說到這里很多人會(huì)想到j(luò)ava對(duì)多系統(tǒng)的支持,其實(shí)這是不一樣的,java的跨平臺(tái)是建立在“中間代碼”的基礎(chǔ)上的,就是說需要在目標(biāo)平臺(tái)上安裝java解釋器;但是wxwidgets是c++庫,經(jīng)過編譯后,他提供的是native級(jí)的機(jī)器碼,在gui編程方面,這可是意味著很大的不同。 [1]
使用wxWidgets開發(fā)的程序有很多,比較著名的有跨平臺(tái)3D游戲0.A.D, 集成編程工具Code::Blocks和CodeLite,文件傳輸工具filezilla。
//-----------------------------------------------------------------------------------------------
我會(huì)選一個(gè)或幾個(gè)框架來移植我多年前開發(fā)的LOW游戲。
以前的是Win32 GUI和MFC的,移植有挑戰(zhàn),基本是重新寫吧。
最近打算寫點(diǎn)東西,先把C語言復(fù)習(xí)下,畢竟上次寫程序是15年前2008年了。
本來應(yīng)該用VC6,但是應(yīng)該用開源的,好吧,那用codeblocks,很多人說應(yīng)該用Dev C++
那個(gè)停止維護(hù)時(shí)間太久了,還不如vc6好用。
選擇FossHUB下載,Sourceforge.net那里不好找。
選這個(gè)64位帶編譯器的便攜版,解壓就能用,不需要安裝。
解開這個(gè)codeblocks.exe就是IDE的啟動(dòng)文件,右鍵發(fā)送快捷方式到桌面,以后好啟動(dòng)。
打開后選file->new->project
Category:選Console后會(huì)剩下控制臺(tái)項(xiàng)目
點(diǎn)擊Console application后點(diǎn)Go繼續(xù)。
我不理解這頁啥意思?無聊瘋掉了?勾上下次跳過這頁后next。
當(dāng)然選C了,C++和C的語法還是要區(qū)分的。
這里Project title起好,后面的名字會(huì)自動(dòng)填寫,不需要修改的話next。
這里可以選擇編譯器,我只安裝了GNU GCC Compiler,codeblocks自帶的也是這個(gè)。
finish完成。
好了點(diǎn)main.c顯示標(biāo)準(zhǔn)的helloworld程序,這里點(diǎn)擊紅三角運(yùn)行會(huì)黑框一閃而過。微軟的vs會(huì)停下,其他的不會(huì),
我們?cè)谠创a里加入getchar()函數(shù)等待輸入,停一下。
鏈接:https://pan.baidu.com/s/1Banz1On18RUVVU3wU9f3fA?pwd=2oai
提取碼:2oai
codeblock+C語言編程練習(xí)100題,我放網(wǎng)盤了需要的自己拿。
我這系列是給朋友準(zhǔn)備的,我準(zhǔn)備訓(xùn)練一些幫手,一個(gè)人搞開發(fā)太累了。
下節(jié)是練習(xí)題了。
*請(qǐng)認(rèn)真填寫需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。