CodeBlocks中文版使用手册工欲善其事,必先利其器一个好的工具能事半功倍写程序时,特别是写C++程序,大部分人脑子里想到的第一个工具就是VisualStudio不可否认,VS很好很强大,用户体验非常好但VisualStudio也是有缺点的:它非常庞大;只支持VC,不支持其他的 编译器;VS只能在windows下跑,在其他os上就无用武之地;VS是要钱的,而且费用不非(Express版本免费)Code::Blocks是 一个非常优秀的工具,如果您正在寻找VisualStudio之外的,开源、免费、轻便、支持多种编译器、跨平台的C/C++ IDE,那么Code::Blocks就是一个很好的选择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++的源文件及其对应的头文件)和编译属性设置信息都保存 在.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支持许多不同类型的项目模板,它们会在新建项目的时候显示,创建新项目的时候往往从这些模板中选择(如上图:)用户可以自定义工程 模板工程模板保存编译器的类型、编译选项、资源的配置等相关信息项目模板保存在Documents andSettingsn\\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 objdump1.7 为构建目标添加脚本(Adding Scripts in Build Targets)Code::Blocks允许使用脚本来调用菜单命令,控制项目的生成。
提示:脚本可以被包含到一个构建目标(Build Target)中1.8 解决方案(Workspace)与项目依赖CodeBlocks可以同时打开多个项目,通过菜单[File->Save workspace]把它们集成到一个解决方案中,并生成一个对应的解决方案文件(.workspace)下次打开解析方案文件(.workspace)时,这些项目会被一起加载进来复杂的软件系统通常由不同的模块、组件以独立的工程项目组成,它们之间往往存在依赖关系例如:项目A以库(library)的形式提供一些公用函数给其他项目调用,如果项目A中的源代码被修改,这个库就得重新编译项目B使用项目A中实现的 函数,那么项目B就依赖项目ACodeBlocks把这些项目依赖的信息保存到解决方案文件中,所以解决方案中的工程可以各自独立的创建、编译而不相互 影响(译者注:由解决方案文件来维护各项目的依赖关系)这些依赖关系会决定项目的生成顺序通过菜单[Project->Properties],然后选择[Project’s dependencies]按钮来设置项目之间的依赖关系如下图:1.9 包含汇编文件略。
1.10 代码编辑器与工具 (Editor and Tools)1.10.1 默认代码 (Default Code)公司的编码规往往要求源文件有统一的布局(译者注:例如源文件的开始处以统一的格式给出文件创建的时间、作者、实现的功能描述等相关信息)CodeBlocks允许预定义一些容,当新建C/C++文件时这些容会自动添加到文件的开始处这里把预定义的容称为default code可以通过菜单[Settings–>Editor–>Default Code]来设置defaulg code,通过菜单[File->New->File]创建的代码文件将自动添加上default code例如:/************************************************************************** Project:* Function:************************************************************************** $Author: mario $* $Name: $*************************************************************************** Copyright 2007 by company name*************************************************************************/1.10.2 缩写(Abbreviation)定义一个常用的代码片断[typing],并给它提供一个名字[Abbreviation],在写程序的时候,只要给出这个名字,然后按快捷键Ctrl + J,CodeBlocks就会用预先定义的代码片断来替换该名字。
译者注:VS中也有类似的功能,在C#程序时,只要写出关键字for,然后连续按两次Tab键,编辑器会自动生成for语句的框架,是不是很方便?~_~)通过菜单[Settings->Editor]来设置Abbreviation,如下图:abbreviation也支持参数变量(Parametrisation)(如:$NOW表示当前时间)如:--> 1.10.3 个性化(Personalities)CodeBlocks的配置信息被作为应用程序数据而保存在codeblocks文件夹的.conf文件中该配置文件中保存的 信息包括:上次打开的项目、代码编辑器的设置、符号栏显示等等默认的个性化设置被保存在default.conf文件中通过命令行参数-personality=myuser来调用CodeBlocks,配置信息将被保存到myuser.conf中如果该文件不存在,系统将自动创建 它如果以命令行的方式来启动CodeBlocks,并传递命令参数--personality=ask,将会显列出当前所有的修改化配置列表,用户选择 其一启动CodeBlocks如下图:1.10.4 配置文件(Configuration Files)CodeBlocks的配置信息保存在codeblocks目录下的default.conf文件中。
当使用个性化设置的时候,配置信息将被保存到.conf文件里cb_share_conf(一个辅助工具,可以在CodeBlocks安装目。