【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的程序,并执行成功. 考虑到网络上关于这方面的资料还较少,特总 ...
随机推荐
- SASS详解之编译输出的样式
SASS是一种CSS预处理语言,没有装环境的话是不能被解析的.但是有了koala编译工具之后,解析SASS不需要环境也毫无压力了.SASS的输出格式有四种:嵌套.扩大.紧凑和压缩.下面结合小例子为大家 ...
- 给出a的定义 -- 指针 和 数组
- MFC获得主窗体和父窗体指针
MFC编程中经常遇到子窗体向父窗体传递參数的情况,这就须要获得父窗体的指针. 例:主对话框CMyMainDlg通过buttonButtonA进入对话框CMyParentDlg.CMyParentDlg ...
- Visual Studio 2012安装VASSISTX插件后导致CPU高的解决的方法
笔者一直都喜欢用VAX插件来做C++的开发,但发现VS2012安装了VAX后,CPU占用超级高,有时界面卡死得很厉害.我卸了又装,升级最新版,都无论用. 直到有天.看到网友说:VS2012的sdf文件 ...
- Eclipse如何安装插件,查看已经安装的插件
文件-帮助-About Eclipse,然后点击Installation Details 查看Installed Software找到已安装的插件 如果要安装新的插件,点击Help,Insta ...
- vue 常见操作 及 ionic 实战回顾
npm install axios sass-loader vue-infinite-scroll vue-router vuex express superagent --save --save 和 ...
- Java中try catch finally的执行顺序问题
finally 语句块是在 try 或者 catch 中的 return 语句之前执行的.更加一般的说法是,finally 语句块应该是在控制转移语句之前执行,控制转移语句除了 return 外,还有 ...
- window 10下 MySql5.7压缩包安装
步骤如下: 1. 解压缩到某位置, 在其根目录下 新建data空目录, 新建my.ini,内容如下: [mysql] default-character-set=utf8 [mysqld] port ...
- Mongoose使用——nodejs结合mongodb
0. 前言: Mongoose是NodeJS的驱动,不能作为其他语言的驱动.Mongoose有两个特点: 通过关系型数据库的思想来设计非关系型数据库 基于mongodb驱动,简化操作 Mongooos ...
- 控制器中添加DB类才可以操作数据库表中的数据
必须使用DB: use DB;