【Code::Blocks】windows 环境下编译 Code::Blocks(已修正)
Code::Blocks 在2012-11-25发布了最新的12.11版本,相比上一个版本(10.05),Code::Blocks 进行了许多改进和更新(Change log)。
Code::Blocks是一个免费、开源、跨平台的IDE,使用C++开发,并且使用wxWidgets做为GUI函式库。Code::Blocks使用了插件架构,其功能可以使用插件自由地扩充。目前, Code::Blocks主要针对开发C/C++程式而设计。
Code::Blocks目前支援Windows、Linux及Mac OS X数种平台。使用者亦能够在FreeBSD环境中建设Code::Blocks[1].

Code::Blocks 作为一个轻型的 C/C++ IDE,相比于 Visual Studio、Eclipse 等大型IDE更适合新人使用。国内大学的大部分 C/C++ 教材仍以 1998 年发行的 Visual C++ 6.0(简称VC 6)为IDE讲解,实属坑害学生。VC 6发布已有十几年,无法有效兼容Windows 7/8系统,不支持 C/C++ 的最新标准,推荐大家尽快放弃它!
下载Code::Blocks:
推荐下载含MinGW编译器的 codeblocks-12.11mingw-setup.exe 版本,不含编译器的版本需要手动配置编译器。
关于汉化:
1. Code::Blocks官方有语言国际化项目,不过提供的项目模板仍为 2006-06-30 所建立,包含词条仅2173个,完全无法满足最新版的8000个左右词条(粗略估计),所以不建议使用。
2. 10.05 版本的Code::Blocks倒是有一个不错的中文语言包,在使用这个版本的同学可以去下载(内含使用帮助,不再解释)。
3. 对于12.11版本的汉化工作尚无人进行,不过有同志一直在坚持做法语的国际化工作,从他那里可以学习到一些Code::Blocks语言国际化的技术。(对于新版的汉化工作,我比较有兴趣,相关准备工作仍在进行,希望能有个结果吧!)
OK,说了好多,回归正题。
在Windows中编译Code::Blocks的详细介绍参考了Code::Blocks Wiki:Installing Code::Blocks from source on Windows。
编译源码的步骤:
1.安装最新版的Code::Blocks,因为需要用它来编译Code::Blocks源码(禁止联想到“鸡生蛋与蛋生鸡”的话题);
下载地址和注意事项已经在上边给出,不再详细说明。Code::Blocks的基本使用方法和大多数IDE类似,也不再赘述。
2.下载并编译wxWidgets,因为Code::Blocks的GUI部分需要引用这个库;
wxWidgets是开源、跨平台的C++ GUI库,详细介绍请参考Wikipedia:wxWidgets。
编译过程比较长,需要半个多小时,而且我编译了3次才成功。如果大家不想麻烦,可以直接下载我的release,解压即可。
下载地址:wxWidgets stable for Windows
将下载到的 wxMSW-2.8.12.zip 解压到 H 盘根目录(根据自己的情况选择);
编译需要用到 MinGW 编译器,因为我们安装的 Code::Blocks 已经包含了这个编译器,所以不需要重新安装。
Code::Blocks 的安装目录是:H:\Program Files\CodeBlocks,MinGW 的目录是:H:\Program Files\CodeBlocks\MinGW。如果经常手动编译 C/C++ 源码,可以将下面两个路径添加到系统的全局变量中:H:\Program Files\CodeBlocks\MinGW\bin;H:\Program Files\CodeBlocks\MinGW\mingw32\bin;
编译开始。
首先,为了防止连接时内存不够用:
If you are using a recent version of MinGW you may find that the object files are too large and that the linker runs out of memory. To fix this problem you need to edit config.gcc so that inline functions are not exported, by modifying the CFLAGS and CXXFLAGS lines to:
CFLAGS ?= -fno-keep-inline-dllexport
CXXFLAGS ?= -fno-keep-inline-dllexport
需要对 H:\wxMSW-2.8.12\build\msw/config.gcc 进行上面的修改。用任意的文本编辑器打开 config.gcc ,进行修改即可。

打开命令提示符窗口,切换当前目录:
cd /d H:\wxMSW-2.8.12\build\msw
设定临时环境变量(如果上一步已经设置 MinGW 的环境变量,直接跳到下一步):
set path=H:\Program Files\CodeBlocks\MinGW\bin;H:\Program Files\CodeBlocks\MinGW\mingw32\bin;
执行命令,大约需要30秒:
mingw32-make -f makefile.gcc SHARED=1 MONOLITHIC=1 BUILD=release UNICODE=1 clean
执行命令,大约需要30分钟,会有20多条警告,忽略之:
mingw32-make -f makefile.gcc SHARED=1 MONOLITHIC=1 BUILD=release UNICODE=1
结束后,会在 H:\wxMSW-2.8.12\lib\gcc_dll 目录生成 wxmsw28u_gcc_custom.dll 这个就是我们需要的。
3.通过SVN更新Code::Blocks源码或下载打包的源码;
打包过的源码可以从这里下载,SVN更新源码的方式可以参考这里。我们采用了打包的源码 codeblocks_12.11-1.tar.gz。
将源码解压到 H 盘,修改目录名 codeblocks-12.11release8629 为 codeblocks,以方便操作。
4.载入源码项目,设定全局变量,开始编译。
用已经安装好的Code::Blocks打开项目文件 H:\codeblocks\src\CodeBlocks.cbp;
会弹出窗口,请求设置环境变量(如果没有弹出窗口,执行菜单 Settings->Global Variables...即可):


这一个参数用来指定发布类型,参见What goes in cb_release_type。
可填入:
-g 代表debug(调试) 或
-o2 带表optimised(优化)
然后开始编译即可。(官方的Wiki中说选择 Build-target 为 Compiler,这么做可能会出错,论坛中的朋友建议为 All)
不出意外的话,最终会看到如下信息:
|=== Build finished: 0 errors, 438 warnings (7 minutes, 8 seconds) ===|
代表编译成功。
5.整合资源文件,创造自己的Code::Blocks发行版。
首先,将 H:\wxMSW-2.8.12\lib\gcc_dll\wxmsw28u_gcc_custom.dll 拷贝到 H:\codeblocks\src\devel 目录,以保证发布的版本具有wxWidgets运行环境;
然后,需要整合所有的资源文件:打开 命令提示符窗口,进入目录 H:\codeblocks\src ,运行 update.bat ,等待结束;
第二步生成了新的目录 H:\codeblocks\src\output ,这里就是你的发行版了。不过,还没有配备编译器奥。
运行一下看看效果吧!

如果在编译过程中遇到什么问题,欢迎在此留言讨论。
文章来自LearnShare,转载请注明。
【Code::Blocks】windows 环境下编译 Code::Blocks(已修正)的更多相关文章
- Openstack 二次开发之:在windows 环境下编译Openstack-java-sdk
在windows环境下使用maven对openstack-java-sdk进行编译 编译源文件 下载源代码 git clonehttps://github.com/woorea/openstack-j ...
- VM CentOS建立共享文件夹实现VS Code在windows环境下go开发,在centos环境里编译
简介 笔记本没办法更换系统,但是开发又必须在linux环境下进行,直接在vm界面环境下开发,卡的都蒙13.无奈之下想到这个法子,来解决现有尴尬的局面>>> 共分3个部分安装: (1) ...
- 在Windows 环境下编译Qt静态库(QT5.32)
参考链接 Qt5.3 Tools and Versions MinGW ICU ActivePerl Qt 安装MinGW工具链环境 这里在Win32环境下要安装一个MinGW工具链,这里最好是先安装 ...
- Windows环境下编译Assimp库生成Android可用的.so或.a文件
在做项目过程中需要使用Assimp这个3D模型读取库来读取obj格式的模型,因为项目是基于Android平台,采用NDK开发,所以就打算编译Assimp库并生成.so文件.本文使用Assimp-v.5 ...
- 在windows环境下编译hadoop
1.环境准备 1.1 JDK的安装 下载jdk1.6.0_43(这里务必要使用jdk的1.6版本,因为使用JDK1.7版本编译hadoop的时候,很多Maven依赖下载不完整,最终会报错)解压到,并将 ...
- Windows环境下使用VS2005编译OpenSSL
如何Windows环境下,使用VS2005编译OpenSSL,虽然这个问题在Baidu.Google上一堆,但安装中还是遇到些问题,在这里 记录下来希望能帮助大家不要在走弯路.注:我是在WinXP S ...
- windows环境下protobuf的java操作{编译,序列化,反序列化}
google protocol buffer的使用和原理 概况: Protocol Buffers(也就是protobuf)是谷歌的语言中立的.平台中立的.可扩展的用于序列化结构化的数据: windo ...
- 编译实战 | 手摸手教你在Windows环境下运行Redis6.x
原创:微信公众号 码农参上,欢迎分享,转载请保留出处. 哈喽大家好啊,我是没事就愿意瞎捣鼓的Hydra. 不知道有没有小伙伴像我一样,平常开发中用的是windows操作系统,有时候想装点什么软件,一看 ...
- windows环境VS2015编译TensorFlow C++程序完全攻略
本文参考和综合了多篇网络博客文章,加以自己的实践,最终终于在windows环境下,编译出可以用于C++程序调用tensorflow API的程序,并执行成功. 考虑到网络上关于这方面的资料还较少,特总 ...
随机推荐
- C#中的数组【转】
目录 数组的声明 数组的初始化 数组的访问 数组的常用属性和方法 为方便起见,以下数组均定义为整型 数组的声明 C#声明数组时,方括号[]必须跟在类型后面,而不是标识符后面 1. 声明一维数组 C#数 ...
- 服务器主机上RAID Card的Write Caching Policy
在Cisco Server的DRAC中, 创建virtual drive时, 会看到下面的选项. 那么Write back, write through, write back bad BBU之间 ...
- mysql的正则表达式
所谓正在表达式,就是通过模式去匹配一类字符串.MySQL支持的模式字符如下表所示: MySQL支持的模式字符 模式字符 含义 ^ 匹配字符串的开始部分 $ 匹配字符串的结束部分 . 匹配字符串中的任意 ...
- Android Logger日志系统
文件夹 文件夹 前言 执行时库层日志库liblog 源代码分析 CC日志写入接口 Java日志写入接口 logcat工具分析 基础数据结构 初始化过程 日志记录的读取过程 前言 该篇文章是我的读书和实 ...
- 2014Esri全球用户大会——亮点系列之产品技术
2014年Esri全球用户大会已于7月14日~18日隆重召开,让我们一起来回味下面精彩内容: 序:大会主题"Creating Our Future" [解读]: 传达两个核 ...
- 微信公众帐号开发教程第4篇-----开发模式启用及接口配置Java
欢迎加入群:347245650 345531810 进行讨论相互交流 我的微信号:572839485 我的微信公众账号 我的微社区欢迎关注 索取源码←请点击 图床:没有服务器 拖拽图片 外网即 ...
- (C++)C++类继承中的构造函数和析构函数
思想: 在C++的类继承中, 建立对象时,首先调用基类的构造函数,然后在调用下一个派生类的构造函数,依次类推: 析构对象时,其顺序正好与构造相反: 例子: #include <iostream& ...
- PHP XML Parser函数
PHP XML Parser 函数 PHP XML Parser 简介 XML 函数允许您解析 XML 文档,但无法对其进行验证. XML 是一种用于标准结构化文档交换的数据格式.您可以在我们的 XM ...
- tarjan+缩点+强连通定理
C - Network of Schools Time Limit:1000MS Memory Limit:10000KB 64bit IO Format:%I64d & %I ...
- 算法笔记_148:有向图欧拉回路求解(Java)
目录 1 问题描述 2 解决方案 1 问题描述 Description A catenym is a pair of words separated by a period such that t ...