【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,转载请注明。