Code::Blocks ── 开源 跨平台 C/C++ Fortran 集成开发环境
Code::Blocks 是一个开放源码的全功能跨平台 C/C++ Fortran集成开发环境。Code::Blocks 由纯 C++ 语言开发而成,采用著名图形界面库 wxWidgets (2.6.2 unicode)。对于追求完美的 C++ 程序员而言,再也不必忍受 Eclipse 的缓慢,也不必忍受 VS.NET 的庞大与高昂的价格。
虽然 Code::Blocks 从一开始就追求跨平台,但最初的重点是 Windows 平台。2006 年 03 月 21 日发版本 1.0 revision 2220 起,Code::Blocks 在其每日构建中正式提供 GNU/Linux 版本,这样,Code::Blocks 在 1.0 发布时就成为了跨越平台的 C/C++ IDE,支持 Windows 和 GNU/Linux。由于其开放源码的特点,Windows 用户可不依赖于 VS. NET,编写跨平台 C++ 应用。
Code::Blocks 基于 wxWidgets 开发,体现了 wxWidgets 的强大。以前,Borland C++ Builder X 宣称基于 wxWidgets 开发跨平台、兼容性好、最优秀的 C++ IDE 环境,但没有实现。
Code::Blocks 提供了许多工程模板,包括:控制台应用、DirectX 应用、动态连接库、FLTK 应用、GLFW 应用、Irrlicht 工程、OGRE 应用、OpenGL 应用、QT 应用、SDCC 应用、SDL 应用、SmartWin 应用、静态库、Win32 GUI 应用、wxWidgets 应用、wxSmith 工程;此外,Code::Blocks 还支持用户自定义工程模板。在 wxWidgets 应用中,选择 UNICODE 可支持中文。
Code::Blocks 支持语法彩色醒目显示,支持代码补全(目前,正在重新设计过程中)、支持工程管理、项目构建、调试。
Code::Blocks 支持插件,包括:代码格式化工具 AStyle、代码分析器、类向导、代码补全、代码统计、编译器选择、复制字符串到剪贴板、调试器、文件扩展处理器、Dev-C++DevPak更新/安装器、DragScroll、源码导出器、帮助插件、键盘快捷键配置、插件向导、To-Do 列表、wxSmith、wxSmith MIME 插件、wsSmith工程向导插件、Windows7 外观。
Code::Blocks 具有灵活而强大的配置功能,除支持自身的工程文件、C/C++ 文件外,还支持 AngelScript、批处理、CSS 文件、D 语言文件、Diff/Patch 文件、Fortan77 文件、GameMonkey 脚本文件、Hitachi 汇编文件、Lua 文件、MASM 汇编文件、Matlab 文件、NSIS 开源安装程序文件、Ogre Compositor 脚本文件、Ogre Material 脚本文件、OpenGL Shading 语言文件、Python 文件、Windows 资源文件、XBase 文件、XML 文件、nVidia cg 文件。识别 Dev-C++ 工程、MS VS 6.0-7.0 工程文件,工作空间、解决方案文件。
设置编译器:Settings --> Compiler... --> Selected compiler --> 选择 GNU GCC Compiler 编译器 --> 在 Toolchain executables 中设置 Compiler 编译器执行路径(若希望使用 VC 编译器,设置类似)
Code::Blocks 支持编译器
# | 编译器 | 平台 | 备注 | 01 | GNU GCC (incl. G77)
| Linux | | 02
| MinGW GCC (incl. G77)
| Win32 | | 03
| MSP430 GCC
| Win32 | | 04
| TriCore and PowerPC GCC
| Win32, Linux | | 05
| Apple GCC (Xcode)
| Mac OS X | | 06
| Microsoft Visual C++ Toolkit 2003
| Win32 | | 07
| Microsoft Visual C++ 2005
| Win32 | | 08
| Borland's C++ Compiler 5.5 | Win32 | | 09
| DigitalMars C/C++
| Win32 | | 10
| OpenWatcom
| Win32 | | 11
| Intel C++ compiler
| Win32 | | 12
| Small Device C Compiler (SDCC) | | | 13
| Digital Mars D
| | | 14
| GDC D Compiler | | | 15
| LLVM D Compiler
| | |
Code::Blocks 版本历史
# | 时间 | 版本 | 新功能 | 备注 | 01
| 2008年03月01日
| 8.02 | | | 02
| 2010年05月31日 | 10.05 | | | 03
| 2012年11月25日 | 12.11 | | | 04
| 2013年12月27日 | 13.12 | | |
| | | | |
| | | | |
C 编程语言版本历史
# | 时间 | 版本 | 事件 | 备注 | 01
| 1978 年 | K&R C | 起初,C 语言并没有官方标准;
1978 年美国电话电报公司 (AT&T)贝尔实验室正式发表 C 语言。
布莱恩·柯林汉(Brian Kernighan)和丹尼斯·里奇(Dennis Ritchie)出版了一本书,名叫《The C Programming Language》;这本书被 C 语言开发者们称为 K&R,很多年来被当作 C 语言的非正式标准说明;人们称这个版本的 C 语言为 K&R C。
| 把运算符 =+ 和 =- 改为 += 和 -=;因为,=+ 和 =- 会使编译器不知道使用者要处理 i = -10 还是 i =- 10,产生混淆。
| 02
| 1970 年到 80 年代 | ANSI C / C89 | C 语言被广泛应用,从大型主机到小型微机,也衍生了很多不同版本。 |
| 1983 年 | 美国国家标准协会(ANSI)成立了一个 X3J11 委员会,制定 C 语言标准。 |
| 1989 年 | 美国国家标准协会(ANSI)通过 C 语言标准,称为 ANSI X3.159-1989 "Programming Language C";因为,这个标准是 1989 年通过的,一般简称 C89 标准。也简称 ANSI C,因为,这个标准是美国国家标准协会(ANSI)发布的。 |
| 1990 年 | 国际标准化组织(ISO)和国际电工委员会(IEC)把 C89 标准定为 C 语言国际标准,命名为 ISO/IEC 9899:1990 - Programming languages -- C。因为,此标准是在 1990 年发布的,所以简称 C90 标准。不过,大多数人依然称之为 C89 标准,因为此标准与 ANSI C89 标准完全等同。 |
| 1994 年 | 国际标准化组织(ISO)和国际电工委员会(IEC)发布了 C89 标准修订版,名叫 ISO/IEC 9899:1990/Cor 1:1994,简称 C94 标准。 |
| 1995 年 | 国际标准化组织(ISO)和国际电工委员会(IEC)再次发布了 C89 标准修订版,名叫 ISO/IEC 9899:1990/Amd 1:1995 - C Integrity,简称 C95 标准。 |
| 03
| 1999 年
| C99 | 国际标准化组织(ISO)和国际电工委员会(IEC)发布 C 语言新标准,名叫 ISO/IEC 9899:1999 - Programming languages -- C,简称 C99 标准。这是 C 语言的第二个官方标准。 | 增加了对编译器的限制,比如源程序每行要求至少支持到 4095 字节,变量名、函数名要求支持到 63 字节(extern 要求支持到 31);
支持 // 开头的单行注释(这个特性实际上在 C89 的很多编译器上已经被支持了);
格式化字符串中,利用 \u 支持 unicode 字符;
修改了 /% 处理负数时的定义,这样可以给出明确的结果,例如在 C89 中 -22 / 7 = -3, -22% 7 = -1,也可以 -22 / 7= -4, -22% 7 = 6。 而 C99 中明确为 -22 / 7 = -3, -22% 7 = -1,只有一种结果;
取消了函数返回类型默认为 int 的规定;
增加和修改了一些标准头文件,比如定义 bool 的 <stdbool.h> ,定义一些标准长度的 int 的 <inttypes.h> ,定义复数的 <complex.h> ,定义宽字符的 <wctype.h> ,类似于泛型的数学函数 <tgmath.h>, 浮点数相关的 <fenv.h>。 在 <stdarg.h> 增加了 va_copy 用于复制 ... 的参数。里增加了 struct tmx ,对 struct tm 做了扩展;
输入输出对宽字符以及长整数等做了相应的支持; | 2001 年 | 国际标准化组织(ISO)和国际电工委员会(IEC)发布了 C99 标准修订版,名叫 ISO/IEC 9899:1999/Cor 1:2001,简称 C01 标准。 |
| 2004 年 | 国际标准化组织(ISO)和国际电工委员会(IEC)发布了 C99 标准修订版,名叫 ISO/IEC 9899:1999/Cor 2:2004,简称 C04 标准。 |
| 2007 年 | 国际标准化组织(ISO)和国际电工委员会(IEC)发布了 C99 标准修订版,名叫 ISO/IEC 9899:1999/Cor 3:2007,简称 C04 标准。 |
| 04
| 2011 年
| C11 | 国际标准化组织(ISO)和国际电工委员会(IEC)再次发布了 C 语言新标准,名叫 ISO/IEC 9899:2011 - Information technology -- Programming languages -- C,简称 C11 标准,原名 C1X。这是 C 语言的第三个官方标准,也是 C 语言的最新标准。 | 新标准提高了对 C++ 的兼容性,并增加了一些新特性;
对齐处理 (Alignment) 的标准化 (包括 _Alignas 标志符,alignof 运算符, aligned_alloc 函数以及 <stdalign.h> 头文件;
多线程 (Multithreading) 支持;
基于 C Unicode 技术报告 ISO/IEC TR 19769:2004,增强了对 Unicode 的支持。包括为 UTF-16/UTF-32 编码增加了 char16_t 和 char32_t 数据类型,提供了包含 unicode 字符串转换函数的头文件 <uchar.h>;
删除了 gets() 函数,使用一个新的更安全 gets_s() 函数替代;
增加了边界检查函数接口,定义了新的安全的函数,例如 fopen_s(),strcat_s() 等等;
匿名结构体/联合体支持,这个在 gcc 早已存在,C11 将其引入标准;
静态断言 (static assertions),_Static_assert(),在解释 #if 和 #error 之后被处理;
新的 fopen() 模式,(“…x”),类似 POSIX 中的 O_CREAT|O_EXCL,在文件锁中比较常用;
新增 quick_exit() 函数作为第三种终止程序的方式,当 exit() 失败时可以做最少的清理工作; | 2012 年 | 国际标准化组织(ISO)和国际电工委员会(IEC)发布了 C11 标准修订版,名叫 ISO/IEC 9899:2011/Cor 1:2012,简称 C12 标准。 |
|
C++ 编程语言版本历史
# | 时间 | 版本 | 事件 | 备注 | 01
| 1998 年 | C++ 98 | C++ 标准第一版,正式名称为 ISO/IEC 14882:1998。 | 绝大多数编译器都支持 C++98 标准;
不过当时错误地引入了 export 关键字,由于技术上的实现难度,除了 Comeau C++ 编译器 export 关键字以外,没有任何编译器支持 export 关键字;并且这个标准对现代一些编译理念有相当的差距,有很多在高级语言都应当有的功能,它都没有。这也正是后来需要制定 C++11 标准的原因所在。 | 02
| 2003 年 | C++ 03 | C++ 标准第二版,正式名称为 ISO/IEC 14882:2003。 | 这个标准仅仅是 C++ 98 的修订版,与 C++ 98 几乎一样,没做什么修改;
仅是对 C++ 98 做了一些 “勘误”,就连主流编译器(受 C99 标准影响)都已支持的 long long 都没有被加入 C++ 03 标准。
| 03
| 2011年 | C++ 11 | C++ 标准第三版,正式名称为 ISO/IEC 14882:2011。 | C++ 11 包含核心语言新机能,拓展了 C++ 标准程序库,并加入了大部分的 C++ Technical Report 1 程序库 (数学上的特殊函数除外);
此次,标准为 C++ 98 发布后 13 年来第一次重大修正。 | 04
| 2014年 | C++ 14 | C++ 标准第四版,正式名称为 ISO/IEC 14882:2014;正式名称为 "International Standard ISO/IEC 14882:2014(E) Programming Language C++"。
| C++ 14 作者 Bjarne Stroustrup 称,主要的编译器开发商已实现了 C++ 14 规格;
C++ 14 旨在作为 C++ 11 的一个小扩展,主要提供漏洞修复和小的改进;
C++ 14 是 C++ 11 的增量更新,主要是支持普通函数的返回类型推演、泛型 lambda、扩展的 lambda 捕获、对 constexpr 函数限制的修订、constexpr 变量模板化等等。 |
版权声明:
本文为独家原创稿件,版权归 德云社区,未经许可不得转载;否则,将追究其法律责任。
|