【VC++开源代码栏目提醒】:网学会员在VC++开源代码频道为大家收集整理了“CodeBlocks简易教程 - 讲义教程“提供大家参考,希望对大家有所帮助!
CodeBlocks 简易教程--共同学习进步完成教程前言: 使用了一段时间的
VC6 后,由于各种功能的需求,又不想安装 VAX 这类的商业插件,还因为 VAX 在Docments 目录下面狂创建一堆的文件让人不爽,终于放弃了这个 IDE,转而使用
开源免费的 CodeBlocks,这个 IDE 基本上满足了偶的需求,做为一款比较中量级的 IDE,基于 10.05 版制作的 CB 绿色版才 21.3MB左右,解压出来也不过 100 多 MB 左右,相比于巨无霸
VC6、VS 系列,非常小巧好用,便于 U 盘携带,是 Windows 下面学习 C/C的最佳助手。
在很多的编程论坛里,看到很多的 C 初学者提出的各种编程使用、编译器选择问题,大致是不知道怎么选择工具,不知道在哪里写
代码,编译,运行,调试,往往这些问题基本上入门的人或是有一定水平的人跟本不愿回答,因而很容易造成初学者无所适从。
本文是本人自己处理的 Codeblocks 10.05 绿色版的配套使用说明,部分引用网上已有的相关知识,以图文的方式带您快速了解这款英文版集成开发环境,同时讲解其内置编译器 MinGW(Gcc)命令行编译的基础知识,帮您扫除 C/C学习道路上的障碍,了解 IDE 和编译器是如何协作,从而更快的进入学习状态,走进编程的大门。
绿色版下载地址: http://u.115.com/file/aq6fdtpx 大小:CodeBlocks.7z 21.3MB 绿色版说明: 基于 codeblocks 10.05 制作,内置 MinGW gcc4.4.1 编译器 更新了 10.05 里面的 win32 - sdk 为 3.17 新版,支持 ddk/sdk/dx/gdi编程 重新编译了 cb 的帮助官方文档,减少了 chm 文件的尺寸。
添加 Depends.exe,来自微软的 SDK XPSP2 版本,用于查看文件依赖。
添加 Spy,来自 SDK XPSP2 版本,用于查看窗口消息和信息的。
添加 c/c标准库函数参考大全(中英版),来自 cpprefence 和网络。
ResEd 2.0.0.6c 版,来自 RadAsm 汇编的一个用于资源编辑的免费软件。
以上新增加的内容均放在/add 目录下面,部分新增工具使用见下面的教程。
CodeBlocks 简介: Code::Blocks 是一个免费、
开源、跨平台的 C/C IDE,支持 Windows、Linux、MacOSX。
同时他还支持各种不同的编译器,如 GNU/MinGW C/C,
VC 6.0/2003/2005/2008,Borland C,Digital Mars等等各种不同的编译器。
经过 14 个组员长达 2 年对 Code::Blocks 的全部重写,终于发布了正式版 8.02,最新版是 10.05 版,这个版本更包括了对构建基于 wxWidgets 的跨平台 GUI 程序的支持,堪比 Visual C。
wxWidgets 则是一个十分优秀的跨平台的 GUI 框架,用其编写的 C应用程序可以十分方便地迁移到不同的系统上去。
Code::Blocks wxWidgets 两个同是支持跨平台的 IDE 和框架,使得跨平台的编程非常方便。
然而 Code::Blocks 虽然包含了对 wxWidgets 的支持,但是却没有包含 wxWidgets 的构建环境,我们必须手动进行配置多说一句,实际上是因为这个 DD 有点大,Dev CPP 的相应编译包居然达到 300MB 之大,所以没法包含在官方的安装版本中。
官方网站: http://www.codeblocks.org 二进制下载:http://www.codeblocks.org/downloads/26 源
代码下载:http://www.codeblocks.org/downloads/25界面预览:一。
CB 中一些常用设置和配置文件。
二。
工程创建三。
创建源文件的二种方式。
四。
编译、链接源程序。
Realase 和 Debug。
五。
调试六。
ResEd 使用,创建资源文件。
七。
多工程与配置。
八。
minGW 命令行编译九。
走出 IDE 的世界,我们一样有其它编程的选择。
结束语。
一、CB 中一些常用设置和配置文件。
CB 第一次使用的时候,需要进行一些简单的设置,个人认为以下几个地方设置可以搞一下,方便使用。
1菜单 Setting/Editor/Gennerl settings,如下图所示,把字体选大一点,第二个地方就是自动括号那里,如果你喜欢自己敲括号,就取消对勾。
2菜单 Setting/Editor/Code-completion and symbols browser,设置自动完成提示如下图所示,第一个地方改成 2,第二个地方往左拖,会更快的出现自动提示。
3菜单 Setting/Editor/Source formatter,这里如下图所示,可以设置格式化源
代码风格,使自己的程序
代码更加美观,编辑中点右键选 Format this file 既可格式化你的源
代码。
CodeBlocks 的配置文件存放在系统盘:Documents and Settings用户名Application Datacodeblocks一个名叫 Default.conf 的文件中,是一个 XML 格式的文本文件,如果你将 CodeBlocks 放在 U 盘上带着的话,需要把这个文件拷到 U 盘上,以备不同的机器上使用你自己的配置。
二、工程创建 CodeBlocks 提供类似于
VC 一样的工程管理,内置了很多类型的工程向导模版,我们以创建最简单的工程为例,如下图:在下面的对话框里选择相应的 C/C类型。
然后在下面的对话框输入相关的工程名和存盘路径,就可以完成了,是不是很简单呢?三。
创建源文件的二种方式。
有至少两程方式,可以在上面创建的工程中添加新文件。
第一种可以上面的已创建好的目录中,直接用windows 提供的创建新文件功能,创建一个空的 c/c文件,然后如下图所示,右点工程,选 add files...添加进工程之中。
第二种方式:可以从菜单 File/New/file...添加新的源文件和头文件。
但是编译的时候,请在菜单 Project/Properties 中注意一下下图设置,是否有勾选下。
未勾选的情况下,该文件不会被编译。
四、编译、链接源程序。
Release 和 Debug。
OK,经过上面的步子后,我们就可以来编译生成程序了,如第一张图所示,点工具栏上最左边那个黄色齿轮,既可,如果你的程序通过编译,那么你将看到如图所示的提示信息:(图满了,下次又帖。
)工具栏上有 Build target 可以选择 Release 和 Debug 两种生成方式,当需要调试时选 Debug,当正式生成时选Release,虽然是废话,但还是要说。
五。
调试 调试程序是每个写程序必须要掌握的,在 CB 中我们可以很方便的进行程序调试,先可以从下图中了解一下 Debug 菜单中的基本命令和快捷键,F5- 断点切换 F8-开始调试 F7 单步执行,Shift-F7 跳进函数体,在程序中将光标放到想要断点的程序行,按 F5 后,就可以继续按 F8 开始调试,这个时候,可以把如图中所示的反汇编窗口和变量监视窗口打开,拖放到你想放的位置即可,如果要添加某个你需要监视的变量,可以使用 Debug/Edit watches...这里进行编辑。
图见一楼。
六。
ResEd 使用,创建资源文件。
本节仅为 Windows 应用程序所用,学习基础 c/c的朋友可以跳过这一节。
首先,为了使用方便,我们把 add/ResEd.exe 这个应用程序添加到 Codeblocks 环境中来。
选择菜单 tools/configure tools。
然后点添加 add,在弹出的对话框中name 中输入例如 Resource editor,Executable 中选择add/ResEd.exe,working directory 中选择 add/目录做为工作目录。
然后选择 launching options 下面最后一项意思是运行是不行是控制台重定向捕获。
点确定后,tools 菜单就会多出一项,选择就可以执行 ResEd 这个程序了。
使用 ResEd 创建和编辑资源文件新建时选择 File/New Project 新建工程,然后点选菜单 Project/add Dialog 等添加对话框,菜单,位图,字符串等资源进行设计,在保存前,为了使用 C 风格的资源,需要在菜单Option/Options 第一个选项卡 Exports 中Name Export Format 选 C defines,Default Export Filename 那里输入 resource.h 或是其它.h 文件名,所有的 IDS 才会导出到正确的头文件中,要不然导出的是汇编风格的。
七。
多工程与配置。
编程过程中,我们可能会创建多个工程共同协作的项目,例如,包括静态库,动态库,主程序,在 CB中一个 WorkSpace 工作空间可以包括多个 project 工程,如图所示,CB windows 编译版本也是采用 cbp 工程项目进行编译的,如果在工程中引用了第三方库文件,或者使用了例如 Win32 Socket 网络库,WinMM多媒体库函数,需要将对应的库文件添加进工程才能正确的编译,如下图所示。
八、minGW 命令行编译8.1 MinGW 是什么? MinGW 提供了一套简单方便的 Windows 下的基于 GCC 程序开发环境。
MinGW 收集了一系列免费的 Windows 使用的头文件和库文件;同时整合了 GNU http://www.gnu.org/ 的工具集,特别是 GNU 程序开发工具,如经典 gcc g make 等。
MinGW 是完全免费的自由软件,它在 Windows 平台上模拟了 Linux 下 GCC 的开发环境,为 C的跨平台开发提供了良好基础支持,为了在 Windows 下工作的程序员熟悉 Linux 下的 C工程组织提供了条件。
CodeBlocks 内置此编译器在 Codeblocks/MinGW 目录下面,为 TDM-MinGW,可以单独下载,另外还有 MinGW-64,可以生成 64 位 windows
代码,可以去网上搜索下载。
8.2 为什么使用 MinGW? 因为我和很多 IT 人士一样,不愿意吊死在M 这棵树上。
且不说
开源这个理念的伟大,仅仅就 Windows 的安全性也已经让人们很不安心了。
如果再深入一点从编写程序来看,在 C标准尚不成熟时期产生的MFC 今天看来基本上就是盖子大叔凭着个人(或许是M 公司)理解所使用的 C方言。
在我们期盼 C0x 时代到来之前,没有任何实际行动能比严格遵循 C的 ISO 标准更能表达我们对于 C这个伟大的哲学体系的尊重。
从这个角度来说,遵循 ISO 标准的实现就是好的实现。
所以,MinGW 不会比
VC 差,况且,他既是
开源软件家族中的一员,也是nix 平台下事实标准 GCC 的翻版。
如果有一天我们开始使用 Linux 平台了,会因为今天透过 MinGW 所了解的 GCC 知识而受益。
8.3 答疑与示例 Q:为什么要学习和掌握命令行编译? A:了解并掌握一个程序的编译,链结过程是每个合格程序员的基本素质。
也可以为你以后进入 linux编程打下一定的基础。
所以我们依然以经典的 hello world 程序来进行示例,
代码很短,所以不写注释了。
1.Console 命令行版本:文件名:main.c
代码: 程序
代码:includeint main printfhello worldn return 0在命令行下面输入: gcc -Wall -c -g -o main.o main.c 进行文件编译。
参数解释: -Wall 打开所有的编译警告 -c 只时行编译,不进行链结。
-g 产生调试信息。
-o main.o 生成编译输出文件叫 main.o最后进行文件链结: ld -Lc:mingwlib -o main.exe main.o c:mingwlibcrt2.o -lmingw32 -lkernel32 -lmsvcrt参数解释: -Lc:mingwlib 设置链结时库文件路径,不设置的话,-lmingw32 这些参数会找不到的。
-o main.exe 设置输出最终的可执行文件 main.exe。
c:mingwlibcrt2.o 这个是 Windows 系统的控制台程序初始化模块。
-lmingw32 -lkernel32 -lmsvcrt 这三个是指示链结时链上 libmingw32.a libkernel32.a libmsvcrt.a 相关库。
其中后两个对应的是 kernel32.dll 和 msvcrt.dll,基本的程序
代码 printf 函数实际上调用的是 puts 函数,在 msvcrt.dll 动态库中。
当正式编译的时候,可以使用以下命令行以生成最小的 EXE: gcc -s -O2 main.c -mconsole参数解释: -s 编译生成汇编
代码 -O2 进行目标
代码优化,O1 到 O3 范围 -mconsole 指定生成控制台程序。
虽然这里正式编译的示例没有上面步子那么多,但你依然需要如示例所示,明白一个程序倒底和哪些库/模块进行了链结。
然后我们使用 depends.exe 查看程序与运行库依赖,如下图所示:2.Windows 版本:文件名:main.c
代码: 程序
代码:includetypedef HINSTANCE _hint WINAPI WinMain_h hinst _h hprev LPSTR cmd int nShow return MessageBoxNULL hello world OK MB_OK命令行输入: gcc -c main.c ld -LC:Program FilesCodeBlocksMinGWlib main.o C:Program FilesCodeBlocksMinGWlibcrt2.o-lmingw32 -lkernel32 -luser32 -lmsvcrt 这里示例的是如果是带空格的路径。
当正式编译的时候,可以使用以下命令行以生成最小的 EXE:注意 -mwindows 表示的是生成 windows 应用程序 gcc -s -O2 main.c -mwindows用 depends.exe 查看程序与运行库依赖。
用 spy查看窗口消息和信息。
九、走出 IDE 的世界,我们一样有其它编程的选择。
通过上面的命令行编译,链结练习,相信你也明白了在 IDE 中点生成按钮时,背后做了哪些事情,OK,没有 IDE 的时候,我们难道就不能写程序了么?你是否还在为选择哪个 IDE(
VC6?dev cpp trubo CVS2008 VS2010 CB)而为难?其实不用,Windows 下面我们依然有其它选择,不用 IDE,随便找个文本 编 辑 器 ( 世 界 上 目 前 至 少 有 1000 多 个 文 本 编 辑 器 可 以 选 择 , Notepad NotePad2 ProgramingNotePad。
。
。
),甚至是记事本,都可以照样写程序,编译和链结,希望本文能带给和偶一样的初学者一些帮助。