Code+Blocks+快速上手教程+
- 格式:pdf
- 大小:413.84 KB
- 文档页数:8
编译并运行该程序,运行时失败,弹出错误信息见下图。
从显示结果看,是string测试出了问题。
当然,很多人可能早就知道很多C的库函数(例如memcpy, memset等),不能对对象操作,否则程序很容易崩溃,但是知道为什么吗?如果您并不清楚为什么,那就通过一个简单的例子,来看一看到底究竟怎么回事。
首先,注释掉test_types.hpp中跟test_string();无关的代码,因为其它几个数据类型测试已经通过,不必再跟踪。
设置断点,然后启动调试器,见下面贴图。
打开watches窗口,接下来专门针对string类型的Stack建立过程一路跟踪下去(注意巧妙的用好调试程序的快捷菜单上的几个按钮),已经跟踪到了test_第27行代码前,仍然没有问题,见下图。
继续Step into,进入栈的push成员函数体内,压入栈第一个string对象没有发生任何问题,继续跟踪把第二个string对象压入栈的过程,此时栈空间不足,需要重新分配空间,然后把原来栈中的string对象复制到新开辟的空间再销毁原来的空间。
这个过层中开辟空间没有问题,因为new足够智能,它知道该开辟多大的空间(因为new能调用构造函数创建一个string数组,T被初始化为new以后,再调用就成了p = new std::string[n]),push对象到栈中,这个复制过程也不会产生问题(因为std::string已经重载了=,可以正常复制std::string对象),但是由于栈空间不足,调用rebuild函数时,我们从Debug下拉菜单选择Edit watches…增加几个变量,监测它们的变化,见下面的贴图。
编辑Waches窗口变量的方法很多,也可以把鼠标指示移动到Watches窗口内,按下鼠标右键会弹出一个快捷菜单,有几个功能供我们选择。
用于手工添加变量到Watches窗口内,用来编辑Watches窗口内当前选中的变量,则用来把选中的变量从Watches窗口内删除,见左下图。
说明:笔者打算用两篇日志来完成对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视图。
CodeBlocks详细使用手册(免费) 嘿,伙计们!今天我要给大家讲讲CodeBlocks的详细使用手册,让你轻松掌握这个强大的编程工具。
别着急,我会用最简单的语言,让你明白每一步该怎么做。
我们先来聊聊CodeBlocks是什么吧。
CodeBlocks是一个免费、开源的集成开发环境(IDE),它支持多种编程语言,比如C++、Java、Python等等。
有了CodeBlocks,你可以在电脑上编写、编译和运行代码,还可以创建项目、保存代码等等。
我们现在就开始吧!我们需要下载并安装CodeBlocks。
这个过程非常简单,只需要点击几下鼠标就可以完成。
安装完成后,你会发现一个全新的界面出现在你的电脑上。
这个界面有点像一个小型的办公室,里面有很多按钮和菜单,你需要学会如何使用它们。
我们要学习如何创建一个新的项目。
在CodeBlocks的界面上,有一个叫做“File”的菜单,里面有很多选项。
其中有一个叫做“New Project”的选项,点击它就可以创建一个新的项目。
在弹出的窗口中,你需要填写一些基本信息,比如项目的名称、位置等等。
然后点击“Create”按钮,就可以开始创建新的项目了。
现在,我们已经创建了一个新的项目,接下来要学习如何添加源代码文件。
在CodeBlocks的界面上,有一个叫做“Project”的菜单,里面有很多选项。
其中有一个叫做“Add files to Group”的选项,点击它就可以添加源代码文件。
在弹出的窗口中,你需要选择要添加的文件类型(比如C++、Java等等),然后点击“Add and Close”按钮,就可以将文件添加到项目中了。
我们要学习如何编译和运行代码。
在CodeBlocks的界面上,有一个叫做“Build targets”的菜单,里面有很多选项。
其中有一个叫做“Build all”的选项,点击它就可以编译所有的源代码文件。
编译完成后,你会看到一个绿色的小箭头出现在“Build targets”旁边,表示编译成功。
Code::Blocks 手册Version 1。
01 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)1.2在CodeBlocks中,Project的源文件(如C/C++的源文件及其对应的头文件)和编译属性设置信息都保存在<name>。
cbp文件里。
可以通过菜单[File–〉Project]启动工程创建向导来创建新的Project,然后通过管理窗口的上下文菜单[Add files](译者注:上下文菜单,指当前窗口中选中目标项目,然后右键显示的菜单)向Project中添加文件。
Blocks使用教程1) 新建源文件打开CodeBlocks ,在上方菜单栏中选择“文件--> 新建--> 空白文件”,如下图所示:在空白源文件中输入本文开头的代码:件,如下图所示。
注意:保存时,将源文件后缀名改为 .c。
2) 生成可执行程序在上方菜单栏中选择构建--> 构建,就可以完成hello.c 的编译工作。
如果代码没有错误,CodeBlocks 会在下方的“构建信息”窗口中看到编译成功的提示,如下图所示:编译完成后,打开源文件所在的目录(本教程是D:\Demo\),会看到多了两个文件:•hello.o 文件:这是编译过程产生的中间文件,这种中间文件的专业称呼是目标文件(Object File)。
•hello.exe 文件:是我们最终需要的可执行文件。
CodeBlocks 在编译过程就会生成此文件,以便在运行时直接调用此文件。
这说明,CodeBlocks 在编译阶段整合了”编译+链接”的过程。
双击hello.exe 运行,并没有看到“C语言中文”几个字,而是会看到一个边框一闪而过。
这是因为,程序输出“C语言中文网”后就运行结束了,窗口会自动关闭,时间非常短暂,所以看不到输出结果,只能看到一个”边框”一闪而过。
对上面的代码稍作修改,让程序输出“C语言中文网”后暂停下来:1.#include<stdio.h>2.#include<stdlib.h>3.int main(){4.puts("C语言中文网");5.system("pause");6.return0;7.}system("pause"); 语句的作用就是让程序暂停一下。
注意开头部分还添加了#include<stdlib.h> 语句,否则当你重新编译时,构建信息窗口会提示有关system函数的警告,如下图所示:再次编译、运行生成的hello.exe ,终于如愿以偿,看到输出结果,如下图所示:按下键盘上的任意一个键,程序就会关闭。
Codeblocks简单使用入门
1.下载与安装
下载地址:/downloads/26
下载版本:建议下载codeblocks-16.01mingw-setup.exe 该版本自带GCC/G++ 编译器和 GDB调试器,便于使用。
安装:建议大家安装时“选择默认安装路径”,一直下一步即可。
如安装在其它位置,则需要配置编译器的路径,比较麻烦。
2.使用步骤
2.1打开Codeblocks软件
2.2点击新建按钮,选择File...
2.3选择C/C++source,点击Go
2.4点击Next
2.5根据自己的需求选择C或C++,此处以C为例
2.6点击路径选择按钮并设置文件名,确认后点击Finish按钮
2.7接下来进入程序编辑界面,输入helloworld测试代码
2.8点击Build and run按钮
注:Build: Compile and Link,编译连接,生成可执行文件,文件格式exe(快捷键Ctrl+F9)
Run:执行,直接执行可执行文件(Ctrl+F10)
Build and Run:编译连接并执行(快捷键F9)
2.9下面为程序运行结果,展示了运行时间,从而可以判断自己算法的复杂度。
ubuntu下codeblocks起步-鼠标响应鼠标是计算机的一个主要输入设备,那么一个C::B程序怎样才能接受鼠标的响应呢?下面的这个工程就简单地介绍了一下鼠标响应事件,第二个程序(双击事件)的原理类似于游戏中控制物体移动的方法,即通过计算物体的下一位置来重绘物体或窗体。
新建wxWidgets工程。
选择2.8.0版本的wxWidgets。
给工程命名为MouClick,保存工程。
wxWidgets project选项卡中分别选用“wxSmith”和“Frame based”项,创建frame工程。
其他几项默认:首先编译一下我们创建的frame工程,你会看到下面的对话框。
这是一个编译器为我们创建的默认的frame工程。
鼠标单击事件:这个响应事件的添加类似于vc,很简单。
选中主窗体,在右下角的event事件选项卡中找到左键单击选项(EVT_LEFT_DOWN),为主窗体添加左键单击事件OnLeftDown(注:其他响应事件的添加也类似)。
在void MouClickFrame::OnLeftDown(wxMouseEvent& event)函数中添加如下一行代码:wxMessageBox(_T("Hi,你单击了一下窗体!"), _("left click"));就是在单击时弹出一个对话框,编译运行。
双技鼠标事件:为主窗体添加鼠标左键双击事件(EVT_LEFT_DCLICK):OnLeftDClick。
好,现在开始我们的第二个程序:为mouClickFrame类(在MouClickMain.h中,-_-!!这个好像不用说。
)添加如下成员(红色为添加的):class test2Frame: public wxFrame{public:test2Frame(wxWindow* parent,wxWindowID id = -1);virtual ~test2Frame();private://(*Handlers(test2Frame)void OnQuit(wxCommandEvent& event);void OnAbout(wxCommandEvent& event);void OnPaint(wxPaintEvent& event);void OnKeyDown(wxKeyEvent& event);void OnLeftDown(wxMouseEvent& event);void OnClose(wxCloseEvent& event);void OnLeftDClick(wxMouseEvent& event);//*)void RePaint(float dx,float dy,int flag);//自定义重绘窗体函数//(*Identifiers(test2Frame)static const long idMenuQuit;static const long idMenuAbout;static const long ID_STATUSBAR1;//*)private:wxBitmap m_bmp;//要载入的图片wxPoint oldpoint;//记录图片变化前的坐标float x;//记录x轴上的变化量float y;//记录y轴上的变化量wxPoint curpoint;//记录变化后的坐标//(*Declarations(test2Frame)wxStatusBar* StatusBar1;//*)DECLARE_EVENT_TABLE()};打开MouClickMain.cpp文件,在MouClickFrame的构造函数中初始化变量如下:m_bmp.LoadFile( _T("./bitmap1.bmp"),wxBITMAP_TYPE_BMP); //装如位图oldpoint.x=70;oldpoint.y=70;curpoint.x=70;curpoint.y=70;x=0.0;y=0.0;添加头文件如下:#include <wx/bitmap.h>#include <wx/math.h>#include <wx/wx.h>#include <wx/event.h>#include <wx/defs.h>#include <wx/utils.h>在主窗体的OnPaint事件中添加代码如下:void test2Frame::OnPaint(wxPaintEvent& event){wxPaintDC dc(this); //创建DCdc.DrawBitmap(m_bmp, curpoint.x, curpoint.y, true); //显示图片}下面来写我们自定义的RePaint事件。
Code::Blocks使⽤教程
下载安装
下载:百度⼀下Code::Blocks 下载,这⾥需要注意就是不要使⽤⾼速下载或者P2P下载。
直接使⽤普通下载即可。
速度很快的安装:直接解压出来就可以使⽤了。
汉化:下载相应的汉化包。
汉化
初次尝试
找到软件⾃带的MinGW
运⾏软件
个⼈喜欢把软件固定在任务栏上,⽅便直接使⽤。
在菜单栏上设置上,设置⼀些简单的运⾏参数
第⼀个程序
新建⽂件Ctrl + Shift + N
保存⽂件 Ctrl + S,保存⽂件时注意输⼊扩展名.cpp
编译并运⾏F9。
程序运⾏成功后,我们再来尝试下freopen()
新建⼀个⽂件,保存为'1.in'
这⾥也可以观察到数据的输⼊输出运⾏时间哦。
当然软件也可以直接打开1.out⽂件,⽅便直接看答案。
嗯。
⼤致就这些,后⾯使⽤慢慢补充吧!。
CodeBlocks简易教程--共同学习进步(完成)教程前言:使用了一段时间的VC6后,由于各种功能的需求,又不想安装V AX这类的商业插件,还因为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 绿色版说明:基于co deblocks 10.05制作,内置MinGW (gcc)4.4.1编译器 * 更新了10.05里面的w in32 - sdk为3.17新版,支持ddk/sdk/dx/gdi++编程* 重新编译了cb的帮助官方文档,减少了chm文件的尺寸。
+ 添加Depends.exe,来自微软的SD K XPSP2版本,用于查看文件依赖。
+ 添加Spy++,来自SDK XPSP2版本,用于查看窗口消息和信息的。
+ 添加c/c++标准库函数参考大全(中英版),来自cpprefence和网络。
CODEBLOCKS快速上手教程
你是不是在想某一天IAR不再让XX的时候我该怎么办呢? KEIL也不行!
(本人已不用KEIL很久了,现在用SDCC)
你不是认为开源.LINUX都是牛人玩的?是不是也想成为牛人!而不是用开源的东西仅仅是因为他不要钱? 是不是想哪一天也能为开源奉献点力量?
而这一切的开头都得你起码得会用这些软件吧!
一次和朋友聊天的时候朋友给我推荐了CODEBLOCKS!
于是下载下来!天啦,英文! 不会,丢一边,这一放就是一年
不过当时记得里面有个AVR的!
一年后,也就是前几天,买了块AVR学习板的PCB,是初版,上面BUG好多!还好本人焊接还可以,不成问题!
然后开始对开发软件选型!
一打听太多了
BASIC(不喜欢没理由! XX掉)
IAR(用不起!虽然目前不是专门搞这个的,随便用用没问题,但如果这么想那么以后永远都只是随便搞搞) Codevision(听说还可以!不过没用过,)
GCC FOR AVR(也就是WINAVR GCC可是大名鼎鼎呀,以后也想玩玩LINUX,那就是他了)
于是安装了AVR STUDIO 并安装了WINAVR
发现写代码的时候没提示,不爽!
于是代码还是用我一直喜欢的C_FREE来写
但是再换回到AVR STUDIO里编译的时候要等一秒AVR STUDIO才会提示文件已被更新
看来这样子不行,太没效率了!
这时候想起了一年前见过的CODEBLOCKS! 试试先
于是在电脑找了半天没找着,只要搜索了一下才发现,忽然发现这已是一年前的版本
于是在其发布网站下载了一个新版!
好了,我们先下载并安装好这次需要的!下载地址:
CodeBlocks:/
WINAVR:/
安装好!
首先要新建一个工程!
哇!支持的还真多!
好!我们要的就是那个最上面的AVR!
选择! 然后Let’s GO!
然后设置工程名称和存放路径!
然后选择好IC型号和晶体频率(为Delay函数提供参数)
同时最好勾选上最下面的RUN AVR_SIZA AFTER BUILD(编译成功显示程序的SIZE) 如果忘了选择待会儿也可以再手动添加
OK! Finish!
好了!现在可以写代码了!
看!默认她已经给我们创建了一个main.c
好!我们就用她作为主文件,双击以打开main.c
OK! Very Good!
这已经是一个完整的程序了!直接编译下!
最左上角那个便是!点击下! 哇,不成功!
哦!原来没找到编译器! 那我们就设置下WINAVR的路径!(其实如果先安装WINAVR 再安装CODEBLOCK的话她会自动搜索的)
哇,支持的好多!还有ARM SDCC MSP430 是不是很COOL?
选择我们的GNU AVR GCC(也就是WINAVR)
然后确认WINAVR的目录
设置上面那个目录即可
好了,再编译下:
OK!~ 好了!
噫? 怎么显示HEX在哪,有多大?嘿嘿,往上拉一拉即可,
每次都得拉一拉呀?
嘿,有办法的!
然后选择
而不是
这将是全局的意思(这里的全局只是针对这个工程哦!) 然后切换到:
把这一行剪切到最下面即可
(小提示:下次新建工程的时候忘了选择RUN AVR_SIZA AFTER BUILD也可以自己添加这么一行哦,嘿,一般人我不告诉他)
然后再编译下:
噫? 哦! 原来这个刚刚已经编译过了,我们并没修改他,那么只有选择重新编译次了!
看,直接显示在最底下,是不是我们最想要的?
目前HEX文件在\bin\Debug目录下
调试成功后发行的时候选择:
HEX文件将产生在\bin\Release目录下,并对程序进行最大优化(优化类型和等级也可以自定义)
你问我为什么最喜欢这个? 第一次确认选择这个的时候就是因为她有代码提示功能
不过默认的提示要输入4个字符才会出现,而已比较慢
那么我们:
再选择
然后:
这里设置输入几个字符后提示
这里设置提示延时
同时也喜欢她的自由,开源
我可不是因为她是自由免费的才用的哦
总有一天,我会换到LINUX下面的,现在起就开始用能换到LINUX下面也能用的软件不是到时候要上手快一些!
再个她支持的东西多,换对象不用换IDE是不是又要好一些?
快来用CODEBLOCKS吧!
以上愚见仅代表个人意见!
残剑饮血
master@
2008年8月31日18时54分。