文章目录
配置项目模板文件
1.项目模板 在Documents and Settings< user >\Application Data\ codeblocks\UserTemplates目录中.
2.配置默认代码
设置->编辑器->默认代码,编写时参考以下:
CodeBlocks变量扩展(可用的内置命令)
时间和日期
- $(TDAY) Current date in the form YYYYMMDD (for example 20051228)
- $(TODAY) Current date in the form YYYY-MM-DD (for example 2005-12-28)
- $(NOW) Timestamp in the form YYYY-MM-DD-hh.mm (for example 2005-12-28-07.15)
- $(NOW_L) Timestamp in the form YYYY-MM-DD-hh.mm.ss (for example 2005-12-28-07.15.45)
- $(WEEKDAY) Plain language day of the week (for example ’Wednesday’)
- $(TDAY_UTC), $(TODAY_UTC), $(NOW_UTC), $(NOW_L_UTC), $(WEEKDAY_UTC) These are identical to the preceding types, but are expressed relative to UTC.
- $(DAYCOUNT) The number of the days passed since an arbitrarily chosen day zero (January 1, 2009). Useful as last component of a version/build number.
语法
Code::Block对待下面的功能相同的字符序列 内部预编译,生成后的,或构建的步骤和变量:
$变量
$(变量)
${变量}
%变量%
变量名必须包含字母数字字符,不区分大小写。 变量从一个散列号( # )被解释为 全局编译器变量 。 下面列出的名称解释为内置类型。
变量是全局用户变量和内装式类型替换值提供的项目文件,或一个环境变量如果后者应该失败。
Per-target定义优先于per-project的定义。
内置的变量扩展就像预定义宏扩展在C预处理器处理时它将文本替换。
可用的内置命令列表
CodeBlocks workspace
- (WORKSPACE_FILENAME), $(WORKSPACE_FILE_NAME), $(WORKSPACEFILE), $(WORKSPACEFILENAME) 当前工作空间项目的文件名(.workspace)。
- $(WORKSPACENAME), $(WORKSPACE_NAME) 显示在选项卡项目的管理面板的工作空间的名称
- $(WORKSPACE_DIR), $(WORKSPACE_DIRECTORY), $(WORKSPACEDIR), $(WORKSPACEDIRECTORY) 工作空间目录的位置.
文件和目录
- $(PROJECT_FILENAME) , $(PROJECT_FILE) , $(PROJECTFILE) , $(PROJECTFILENAME) , $(PROJECT_FILE_NAME) 当前编译项目的文件名。
- $(PROJECT_NAME) , $(PROJECTNAME) 当前编译项目的名称。
- $(PROJECT_DIR) , $(PROJECTDIR) , $(PROJECT_DIRECTORY) , $(PROJECTDIRECTORY) 目前的公共目录编译项目。
- $(PROJECTTOPDIR) , $(PROJECT_TOPDIR) , $(PROJECTTOPDIRECTORY) , $(PROJECT_TOPDIRECTORY) 目前编译项目的顶层目录中。
- $(ACTIVE_EDITOR_FILENAME) 文件的文件名在当前活动编辑器中打开。
- $(ACTIVE_EDITOR_LINE) 返回当前行活动编辑器。
- $(ACTIVE_EDITOR_COLUMN) 返回当前行的列在活动编辑器。
- $(ACTIVE_EDITOR_DIRNAME) 当前活动文件的包含目录(相对于普通顶级路径)
- $(ACTIVE_EDITOR_STEM) 当前活动文件的基本名称(没有扩展)。
- $(ACTIVE_EDITOR_EXT) 当前活动文件的扩展名。
- $(ACTIVE_EDITOR_SELECTION) 当前选中的文本从活跃的编辑器。
- $(ALL_PROJECT_FILES) 一个包含当前项目的所有文件的名称的字符串。
- $(MAKEFILE) makefile的文件名。
- $(CODEBLOCKS) , $(APP_PATH) , $(APPPATH) , $(APP-PATH) 当前运行的实例Code::Blocks的路径
- $(DATAPATH公司) , $(DATA_PATH) , $(DATA-PATH) 当前运行的Code::Blocks的“共享”目录的实例
- $(PLUGINS) 当前运行的插件的目录的实例Code::Blocks
- $(TARGET_COMPILER_DIR) The compiler installation directory so-called master path.
构建目标
- $(FOOBAR_OUTPUT_FILE) 一个 具体的 目标的输出文件。
- $(FOOBAR_OUTPUT_DIR) 一个 具体的 目标的输出目录。
- $(FOOBAR_OUTPUT_BASENAME) 一个具体的 目标的输出文件的基本名称(没有道路,没有扩展)。
- $(FOOBAR_PARAMETERS) 一个具体的目标的执行参数
- $(TARGET_OUTPUT_DIR) 当前的目标的输出目录。
- $(TARGET_OBJECT_DIR) 当前的目标对象的目录。
- $(TARGET_NAME) 当前的目标的名字。
- $(TARGET_OUTPUT_FILE) 当前的目标的输出文件。
- $(TARGET_OUTPUT_FILENAME) 当前的目标的输出文件名。
- $(TARGET_OUTPUT_BASENAME) 当前的目标的输出文件的基本名称(没有路径,没有扩展名)。
- $(TARGET_CC),$(TARGET_CPP),$(TARGET_LD),$(TARGET_LIB) 当前的目标的构建工具可执行(编译器、链接器等)。
- $(TARGET_COMPILER_DIR); 当前的目标的构建工具目录(编译器、链接器等)。
语言和编码
- $(LANGUAGE) The system language in plain language.
- $(ENCODING) The character encoding in plain language.
Random values
- $(COIN) This variable tosses a virtual coin (once per invocation) and returns 0 or 1.
- $(RANDOM) A 16-bit positive random number (0-65535)
3.设置项目自定义全局变量
设置->全局变量 ->base文本框随便给个路径(如CodeBlock目录)
右边的用户自定义字段中写入名称和值,比如author = jrvzuo_qiu
此时你可以用${#default.author}定义你的默认代码了,如
/***
* Filename: $(ACTIVE_EDITOR_STEM).$(ACTIVE_EDITOR_EXT)
* Author: ${#default.author}
*/
4.关于doxyBlocks插件使用
doxyBlocks插件是调用doxygen来自动生成项目帮助文件,以供后来者快速读懂之前程序员的代码。doxyBlocks功能很强,这里记录些我配置的过程。DoxyBlocks -> open preferences -> 最后的“常规”选项卡。
在此写入doxygen、doxywizard、HHC、Dot路径,前两个从官网下载最新的doxygen程序bin目录(可能要翻墙),HHC指微软的HTML Help Workshop程序目录下的hhc.exe命令行工具,Dot指Graphviz程序bin目录下的dot.exe。HHC可以将HTML文件编译成chm帮助文件,dot“所想即所得”可以将graphviz关系图代码转化成png格式的图片,这里doxyBlocks用它生成UML关系图等然后插入帮助文档。
配置好上面后,就可以生成帮助文件HTML了。但生成的index.html是英文的,而且没有生成chm格式。以下方法是本人摸索出来,可供参考,* 为必填。
确保以下工具存在后,DoxyBlocks ->DoxyWizard打开doxy配置对话框。
* Step 1的文本框中写入Doxygen工作目录,即/doxygen/bin
Step 2的Wizard选项卡->Topics->Project
* Project name中写入项目名称
Project synopsis中写入项目摘要描述
Project version or id中写入项目版本
Project log中给张项目Log图片
* Source code directory中写入源文件目录,如项目中的src文件夹
* 勾选上Scan recursively 表示递归搜索源文件目录
* Destination directory中写入生成文档的存放目录,如项目中的desc文件夹
Wizard->Topics->Mode
Select the desired extraction mode中可选生成的部分,建议All Entities生成所有部分
* Select programming language to optimize the results for中选择项目语言(doxygen支持多种语言)
Wizard->Topics->Output
勾选上HTML表示生成HTML文档,单选plain HTML表示纯HTML文档,第二个表示带有导航的HTML,第三如果要生成CHM格式文档的话必须选中。
勾选上LaTex表示生成LaTex和PDF文档
勾选上Man pages 生成man帮助文件(linux下帮助文件)
勾选上Rich Text Format及XML生成rtf和xml格式的帮助文件
Wizard->Topics->Diagrams
单选第三个表示使用graphviz生成图表,建议勾选。勾选后的复选建议全部勾选获得完整的图片文件。
Expert->Topics->Project
* 如果你使用UTF-8文件编码的话,DOXYFILE_ENCODING一定要写成UTF-8
* OUTPUT_LANGUAGE如果你用中文的话,改为Chinese
TAB_SIZE关于对齐格式,建议为4
Expert->Topics->Build 建议勾选前六个,获得完整的结构文档
Expert->Topics->Input 注意INPUT_ENCODING是否是UTF-8(否则可能乱码)
Expert->Topics->HTML
勾选上GENERATE_HTMLHELP表示生成HTML帮助(及chm文件)
CHM_FILE 填写生成的chm文件名,注意不是路径,仅仅是文件名,如index.chm
HHC_LOCATION 给出hhc.exe程序的完整路径
CHM_INDEX_ENCODING 给出生成索引的编码,建议GBK
建议不要勾选SEARCHENGINE选项,未知错误
Expert->Topics->Dot
勾选上HAVE_DOT表示生成图表文件
建议勾选上UML_LOOK 表示生成UML关系图
DOT_IMAGE_FORMAT建议只用PNG格式
DOT_PATH 给出graphviz程序的bin目录
完成以上工作运行,成功生成文档。如果有error: failed to run html help compiler on index.hhp的错误,尝试在管理员权限下输入:
regsvr32 “HTML Help Workshp程序目录\itcc.dll”
应该能够解决问题。
利用Doxyblocks(doxygen)导出生成项目说明文档时出错
codeblocks官网Doxyblocks说明: http://wiki.codeblocks.org/index.php/DoxyBlocks
用利用Doxyblocks->Extarct Documents出现以下错误;
Execution of 'doxygen' failed.
Please ensure that the doxygen 'bin' directory is in your path or provide the specific path in DoxyBlocks' preferences.
需要先安装doxygen,在http://www.doxygen.nl/download.html)下载。
然后在Doxyblocks->open proference->general中配置安装的路径即可。
利用Doxyblocks(doxygen)自动生成文件和函数注解
自动生成文件注解
settings->edit->Abbreviations 添加fh,内容
/** \file $ACTIVE_EDITOR_STEM).$ACTIVE_EDITOR_EXT
* \author ${#default.author}
* \version ${#default.version}
* \date $TODAY
*
* \brief
*
*/
其中的author,version是自定义的全局变量(前面已经解释过)。
设置视图:
在文件头输入fh,ctrl + j自动生成。
显示:
/** \file wch.h
* \author jsword
* \version 1.0
* \date 2019-07-11
*
* \brief 宽字符操作函数
*/
自动生成函数注解
添加:fn
/*! \fn
* \brief
* \param
* \param
* \exception
* \return
*/
吐槽一下,codeblocks并未提供在生成函数注解时,自动获取函数名和参数列表的方法,必须手动输入。
参考文章:
吐槽一下,codeblocks并未提供在生成函数注解时,自动获取函数名和参数列表的方法,必须手动输入。