开源IDE Code::Blocks 10.4即将Release,双编译器绿色版-SVN6202!

老邓 2010-03-24 03:56:56
集成本帖提到的所有补丁,非官方,双编译器(VC9、MinGW4.4.3)绿色版,解压密码:csdn
>> http://portablecb.googlecode.com/files/LoveDEV.7z
<< 由于集成VC9,所以请试用后24小时内删除!

官方公告:http://forums.codeblocks.org/index.php/topic,12156.0.html
这段时间比较忙,主要是学习Code::Blocks的代码,并且为其提交补丁。

这几天我为CB提交了几个补丁,欢迎大家积极测试,特散分感谢!

2010-03-26 补丁五:类似Eclipse的Tab智能跳转(但功能相对更简单)
http://forums.codeblocks.org/index.php/topic,12140.msg83331.html#msg83331

2010-03-27 补丁六:为AStyle插件增加--pad-header特性
http://forums.codeblocks.org/index.php/topic,12279.0.html

2010-03-28 补丁七:VC编译器,CDB调试时支持Step In和Step Out了。
http://forums.codeblocks.org/index.php/topic,12282.new.html#new

2010-03-28 补丁八:让AStyle插件只格式化选中的行
http://forums.codeblocks.org/index.php/topic,12289.0.html

2010-04-01 补丁九:修正设置最小尺寸时,实时预览的bug!现在可以RAD开发时和实时预览、最终运行效果保持一致了。
http://forums.codeblocks.org/index.php/topic,12315.msg83614/topicseen.html#msg83614

2010-04-07 补丁十:修正及完善wxSmith的ID设置,可以使用wxID_为前缀的ID了
http://forums.codeblocks.org/index.php/topic,12345.msg83776/topicseen.html#msg83776

补丁一:
Index: src/sdk/cbeditor.cpp

===================================================================

--- src/sdk/cbeditor.cpp (revision 6195)

+++ src/sdk/cbeditor.cpp (working copy)

@@ -414,6 +414,23 @@

control->GotoPos(pos);
if (ch == _T('{'))
{
+ int curLine = control->GetCurrentLine();
+ int keyLine = curLine;
+ wxString text;
+ do
+ {
+ int keyPos = control->GetLineIndentPosition(keyLine);
+ int start = control->WordStartPosition(keyPos, true);
+ int end = control->WordEndPosition(keyPos, true);
+ text = control->GetTextRange(start, end);
+ }
+ while ((text.IsEmpty() || text == _T("public") || text == _T("protected") || text == _T("private"))
+ && text != _T("namespace")
+ && (--keyLine));
+
+ if (text == _T("class") || text == _T("struct") || text == _T("enum") || text == _T("union"))
+ control->InsertText(control->GetLineEndPosition(curLine), _T(";"));
+
const wxRegEx reg(_T("^[ \t]*{}[ \t]*"));
if (reg.Matches(control->GetCurLine()))
{

作用:当自动完成{}时,如果是类或结构体,则可以自动为其右括号后面加一个分号。
例如:
class A {|}
class B
{
|
}

struct A {|}
struct B
{
|
}

将自动变成:
class A {|};
class B
{
|
};

struct A {|};
struct B
{
|
};


补丁二:
Index: src/plugins/codecompletion/codecompletion.cpp

===================================================================

--- src/plugins/codecompletion/codecompletion.cpp (revision 6195)

+++ src/plugins/codecompletion/codecompletion.cpp (working copy)

@@ -2106,6 +2106,26 @@

}
}
}
+
+ if (event.GetEventType() == wxEVT_SCI_CHARADDED)
+ {
+ if (event.GetKey() == _T(':'))
+ {
+ if (control->AutoCompActive()) control->AutoCompCancel();
+ wxString text = control->GetCurLine().Trim(false);
+ text = text.Remove(text.Find(_T(':'), true));
+ text = text.Trim();
+ if (text == _T("public") || text == _T("protected") || text == _T("private"))
+ {
+ int curLine = control->GetCurrentLine();
+ control->GotoPos(control->GetLineIndentPosition(curLine));
+ control->BackTab();
+ control->GotoPos(control->GetLineEndPosition(curLine));
+ control->NewLine();
+ control->Tab();
+ }
+ }
+ }

Parser* parser = m_NativeParser.GetParserPtr();
if ( parser && parser->Options().whileTyping

这个补丁的作用是在输入public、protected和public时,可以自动取消缩进,从而将当前的:
class A
{
public:
void test()
{
int i = 0;
}

private:
int good()
{

}

protected:

};

自动变成:
class A
{
public:
void test()
{
int i = 0;
}

private:
int good()
{

}

protected:

};


补丁三:http://forums.codeblocks.org/index.php/topic,12235.0.html
作用:使用hash_map提升性能

补丁四:http://forums.codeblocks.org/index.php/topic,12244.0.html
作用:修正双编译配置时,通过向导创建工程时,会同时检索默认编译器的头文件路径

另外,大家自己编译Code::Blocks时,可以打开GCC的优化选项,设置为-O2,经测试,这几乎可以提升20%左右的性能!
有兴趣的可以尝试下。
...全文
6325 229 打赏 收藏 转发到动态 举报
写回复
用AI写文章
229 条回复
切换为时间正序
请发表友善的回复…
发表回复
miqing1985 2012-04-23
  • 打赏
  • 举报
回复
非常感谢。顶
myes001 2011-09-01
  • 打赏
  • 举报
回复
开源,纯c/c++才是它的亮点
smcree 2011-03-07
  • 打赏
  • 举报
回复
现在做论文仿真,就是在lunux下的codeblocks开发的
junyizhi 2011-02-12
  • 打赏
  • 举报
回复
为何我的Code::Blocks 右键 会崩溃

下最新版本的 又无法双击函数名声明 然后跳到定义处 如何解决
ollydbg23 2011-02-12
  • 打赏
  • 举报
回复
[Quote=引用 224 楼 junyizhi 的回复:]

为何我的Code::Blocks 右键 会崩溃

下最新版本的 又无法双击函数名声明 然后跳到定义处 如何解决
[/Quote]
请详细描述你的问题和过程,否则无人能帮你。
Tracy630 2010-11-17
  • 打赏
  • 举报
回复
刚下完 自动完成 功能好强大啊

Onz
Tracy630 2010-11-17
  • 打赏
  • 举报
回复
能不能把VC的插件剥离出来 单独发布? 我已经装C::B了
Tracy630 2010-11-17
  • 打赏
  • 举报
回复
好多人围观啊
这么好的文章必须水一贴
hongwenjun 2010-09-22
  • 打赏
  • 举报
回复
可以加进 PCRE 正则库
我昨天晚上,分别用 VC 和 GCC 编译了 PCRE 的动态链接库
DecoderEx_ 2010-05-24
  • 打赏
  • 举报
回复
Build target选为Debug时不加入调试信息么?必须要设置-g选项才能进行调试
wyxssh 2010-05-19
  • 打赏
  • 举报
回复
我刚开始用Code 支持~~~
ldg2050 2010-05-18
  • 打赏
  • 举报
回复
CB是什么?不懂啊!目前只是用C++编写一些计算方法的程序,倒不用天天折腾开发工具的,只要能支持标准C++,能调试就可以了,当然,向VC6就不行了
ollydbg23 2010-04-16
  • 打赏
  • 举报
回复
[Quote=引用 215 楼 redgamer 的回复:]

请问 Loaden:

这个软件的g++编译器是什么版本?

是你优化的QP's GCC/MinGW32 Builds 么?

看到这个项目的介绍,比TDM GCC有不少优点。

如果要应用这个编译器,有什么注意的地方?

如果有时间,请介绍一下
[/Quote]

Loaden打了很多补丁的 GCC 4.4.3 版本,的确综合了offcial mingw 和 tdm gcc 的优点。
没有啥需要注意的地方,呵呵。
redgamer 2010-04-15
  • 打赏
  • 举报
回复
请问 Loaden:

这个软件的g++编译器是什么版本?

是你优化的QP's GCC/MinGW32 Builds 么?

看到这个项目的介绍,比TDM GCC有不少优点。

如果要应用这个编译器,有什么注意的地方?

如果有时间,请介绍一下
老邓 2010-04-14
  • 打赏
  • 举报
回复
[Quote=引用 212 楼 vmary 的回复:]
VS都发布了,CB什么时间发啊?

麻烦告诉大家一下。

不要让人家老是等着
[/Quote]
因为是开源工程,准备工作做起来比较麻烦的。
我不是开发者。

根据官方论坛的信息,有可能要5月份才发布。
Vmary 2010-04-13
  • 打赏
  • 举报
回复

VS都发布了,CB什么时间发啊?

麻烦告诉大家一下。

不要让人家老是等着
ylke2007 2010-04-13
  • 打赏
  • 举报
回复
leaning and study ing
ker0 2010-04-12
  • 打赏
  • 举报
回复
[Quote=引用 205 楼 loaden 的回复:]
引用 204 楼 ker0 的回复:

楼主: 编译C::B时就怎样配置 呀?
为什么我编译出来的

codeblocks.exe 7.45M
codeblocks.dll 38.2M

怎么这么大呀?

需要调用一下update.bat,这会strip掉debug信息。

另,你202楼的问题:
1. 应该在代码行里下断点,在括号上下确实会出现一些问题。
2. 可以在……
[/Quote]

谢谢,
GUI程序原来是这们问题呀:)这些小tips真是雷区呀,不知道何时才能彻底搞明白这些细节.
linoom 2010-04-12
  • 打赏
  • 举报
回复
[Quote=引用 139 楼 loaden 的回复:]

对SVN6198版本打包了一个集成双编译器的绿色版,集成本帖提到的所有补丁。
由于集成VC9,请在试用后24小时内删除,并谢绝第三方站点转载!
[/Quote]
24小时内删除????? 还没用呢就删除
老邓 2010-04-12
  • 打赏
  • 举报
回复
[Quote=引用 204 楼 ker0 的回复:]

楼主: 编译C::B时就怎样配置 呀?
为什么我编译出来的

codeblocks.exe 7.45M
codeblocks.dll 38.2M

怎么这么大呀?
[/Quote]
需要调用一下update.bat,这会strip掉debug信息。

另,你202楼的问题:
1. 应该在代码行里下断点,在括号上下确实会出现一些问题。
2. 可以在工程属性里改成GUI。同时显示控制台的目的是为了输出一些调试信息。
3. 因为CC这个插件的原因:找不到Boost的头文件,还需要继续完善!
加载更多回复(207)

64,637

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧