来源:blog.csdn/JGood/archive/2010/01/25/5252119.aspx
原手册下载:/docs/manual_en.pdf
译者:JGood(blog.csdn/Jgood )
译者言:工欲善其事,必先利其器。一个好的工具能事半功倍。写程序时,特别是写C++程序,大部分人脑子里想到的第一个工具就是VisualStudio。不可否认,VS很好很强大,用户体验非常好。但VisualStudio也是有缺点的:它非常庞大;只支持VC,不支持其他的编译器;VS只能在windows下跑,在其他os上就无用武之地;VS是要钱的,而且费用不非(Express 版本免费)。Code::Blocks是一个非常优秀的工具,如果您正在寻VisualStudio之外的,开源、免费、轻便、支持多种编译器、跨平台的C/C++ IDE,那么Code::Blocks就是一个很好的选择。
说明:笔者打算用两篇日志来完成对Code::Blocks手册前二章的编译,分别是:使用篇、插件篇。本文是第一篇:Code::Blocks使用篇。原手册第三章介绍Code::Blocks变量、脚本的使用,第四章介绍如何从源码编译Code::Blocks,这两章内容不是很多,笔者认为对大部分用户帮助不是不大,暂不打算翻译。笔者使用的Code::Block版本是nightly builds,svn6088(可以在这个地址下载:/index.php/topic,11875.0.html)。使用的编译器是GCC3.4.5。每个版本之间的使用可能会有细微的差别。因为水平有限,难免出错,欢迎指正!
Code::Blocks 手册Version 1.0
感谢CodeBlocks项目组:
Anders F. Bjorklund (afb), Biplab Kumar Modak (biplab), Bartomiej wiecki (byo), PaulA. Jimenez (ceniza), Koa Chong Gee (cyberkoa), Daniel Orb (daniel2000), Lieven de Cock(killerbot), Yiannis Mandravellos (mandrav), Mispunt (mispunt), Martin Halle (morten-macy), Jens Lody (jens), Jerome Antoine (dje), Damien Moore (dmoore), Pecan Heber(pecan), Ricardo Garcia (rickg22), Thomas Denk (thomasdenk), tiwag (tiwag)
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free
Documentation License, Version 1.2 or any later version published by the Free Software Foundation.
1 CodeBlocks项目管理
下图是CodeBlocks运行时的用户界面:
∙管理(Management):管理窗口包含Project视图与Symbols视图。Project视图显示当前CodeBlocks打开的所有项目(译者注:类似与VS解决方案资源管理器);Symbols 视图显示项目中的标识符:类,函数、变量等信息(译者注:类似与VS的类视图)。
∙代码编辑器:支持代码折叠,关键字高亮显示。上图main.cpp正在被编辑。
∙打开文件列表:显示当前在代码编辑器中打开的所有文件列表。上图中打开的文件列表为:main.cpp, person.cpp, person.hpp
∙代码段(CodeSnippets):管理常用的代码段、常用文件链接(links to files)与URL。可以通过菜单View->CodeSnippets 来显示该面板。
∙日志和其他:这个窗口用于输出日志信息,显示查询结果等等。
∙状态栏提供了以下这些信息:
∙编辑器中打开文件的绝对路径;
∙文件的编码类型;
∙光标所在的行与列;
∙当前的键盘模式(insert 或者overwrite);
∙当前的文件状态。被修改过的(但尚未保存)文件将被标记为“modified”,否则这里为空;
∙文件操作的权限。如果文件是只读的,这里将会显示“Read only”,在Open files list 中,该文件会使用一个加琐的图标来显示;
∙个性化配置名称;
CodeBlocks提示了非常灵活和强大的项目管理功能。下文将介绍项目管理的一些常用功能。
1.1 项目视图(Project View)
在CodeBlocks中,Project的源文件(如C/C++的源文件及其对应的头文件)和编译属性设置信息都保存在<name>.cbp文件里。可以通过菜单[File–>Project]启动工程创建向导来创建新的Project,然后通过管理窗口的上下文菜单[Add files](译者注:上下文菜单,指当前窗口中选中目标项目,然后右键显示的菜单)向Project中添加文件。CodeBlocks会自动根据文件的后缀将它们放入不同的类别文件夹中(译者注:这个文件夹是虚拟的,实际并不存在)。下面是默认的分类:
∙Sources:包含源文件,后缀为*.c、*.cpp;
∙ASM Sources:包括汇编源文件,后缀一般为*.s、*.S、*.ss、*.asm;
∙Headers:包括头文件,后缀一般为*.h、*.hpp;
∙Resources:包括资源文件,后缀一般为*.res、*.xrc;
通过管理窗口的上下文菜单[Project tree –>Edit file types & categories],用户可以新建自定义的文件类别,并为其相应的后缀。例如,如果你希望*.ld的文件放到Linkerscript的分类里,你只需新建类别Linkerscript,并为它指定*.ld后缀即可。
提示:如果你取消选中管理窗口上下文菜单的[Project tree–>Categorize by file types]选项,所有的项目文件将会按它们在文件系统中的位置来显示。
1.2 项目备注(Notes for Projects)
可以给CodeBlocks项目添加一些备注,用于对项目进行概要的描述与说明,这些信息有助于其他成员迅速的了解项目。备注信息被保存在项目工程文件里,并可以设置为随着项目的启动而显示。如图:
1.3 项目模板
codeblocks带编译器版本
CodeBlocks支持许多不同类型的项目模板,它们会在新建项目的时候显示,创建新项目的时候往往从这些模板中选择(如上图:)。用户可以自定义工程模板。工程模板保存编译器的类型、编译选项、资源的配置等相关信息。项目模板保存在Documents andSettingsn\<user>\Application Data\codeblocks\UserTemplates目录中。如果你希望该工程模板被本机的所有用户使用,必须把对应的模板文件拷贝到CodeBlocks的安装目录。模板在CodeBlocks重启之后生效,通过菜单[New->Project->User templates]就可以看到自定义的模板。
提示:用户可以通过右键选中工程向导中的模板对其进行编辑。如下图:
1.4 从编译模式创建项目(Create Projects from Build Targets)
一个项目往往有不同的编译模式,最常见的是Release和Debug。不同的编译模式表示用于构建当前项目所使用的不同编译器选项、调试信息或者依赖的文件。每一种编译模式都可以被保存成独立的工程文件。通过上下文菜单[Project->Properties],在Build Targets标签中点击“Create project from target”按钮
来生成对应编译模式的工程文件,如图:
1.5 编译模式(Virtual Targets)
一个项目可以有多种不同的编译模式,最常用的编译模式为“Debug”和“Release”。“Debug”模式下会包
含许多Debug信息,而“Release”模式下没有这些信息。也可以通过上下文菜单[Project->Properties->Build Targets]添加其他的编译模式。编译模式将显示在工具栏中:
1.6 预生成和生成后步骤(Pre- and Postbuild setps)
Code::blocks允许在项目生成前和生成后执行额外的操作,这些操作分别被称为预生成(Prebuilt)或生成后(Postbuilt)步骤。下面是典型的生成后步骤:(译者注:笔者对低层的东西知道的不多,不是很清楚下面这些步骤的意思。)
Creating an Intel Hexformat from a nished object
Manipulating objects by objcopy
Generating dump les by objdump
1.7 为构建目标添加脚本(Adding Scripts in Build Targets)
Code::Blocks允许使用脚本来调用菜单命令,控制项目的生成。
提示:脚本可以被包含到一个构建目标(Build Target)中。
1.8 解决方案(Workspace)与项目依赖
CodeBlocks可以同时打开多个项目,通过菜单[File->Save workspace]把它们集成到一个解决方案中,并生成一个对应的解决方案文件(<name>.workspace)。下次打开解析方案文件(<name>.workspace)时,这些项目会被一起加载进来。
复杂的软件系统通常由不同的模块、组件以独立的工程项目组成,它们之间往往存在依赖关系。