【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的程序,并执行成功. 考虑到网络上关于这方面的资料还较少,特总 ...
随机推荐
- php 单进程SAPI生命周期
php的生命周期3.1 STARTUP 1.初始化引擎和核心组件. 2.解析php.ini. 3.初始化静态构建的模块(MINIT). 4.初始化共享模块(MINIT).3.2 ...
- .NET-MVC站点部署到windows server2008r2服务器404错误
iis站点搭建 产生原因: 由于服务器上的.net4.0没有进行注册导致的 解决方法: 注册.net 4.0 打开运行-cmd-输入如下命令: C:\WINDOWS\Microsoft.NET\Fra ...
- SSIS实践入门3:把SSIS程序包从A电脑到B电脑的转移
接触SSIS已经有几天了,之前一直是在A电脑做一些demo和修改一些之前的SSIS程序.这次在包中拖入了一个脚本任务,但是在A电脑打开编辑一直打不开,如下图所示 在B电脑就可以打开SSIS脚本编辑器 ...
- Activiti 流程启动及节点流转源代码分析
作者:jiankunking 出处:http://blog.csdn.net/jiankunking 本文主要是以activiti-study中的xiaomage.xml流程图为例进行跟踪分析 详细的 ...
- 【php】Apache无法自己主动跳转却显示文件夹与php无法连接mysql数据库的解决方式
一.Apache无法自己主动跳转却显示文件夹 Apache无法自己主动跳转却显示文件夹这是由于Apacheserver下conf/httpd.conf没有配置好,其默认是不跳转,直接显示文件夹 首先, ...
- 【Python】【Nodejs】下载单张图片到本地,Python和Nodejs的比较
Python版本: # 下载单张图片到本地,看用时多少 import urllib.request import datetime starttime = datetime.datetime.now( ...
- 时间记录APP———Time Meter
关注过时间管理的人可能都听过大名鼎鼎的柳比歇夫的时间记录法,在几年前,大多人都推荐纸笔的记录方法,但是纸笔总是会忘,越来越智能的手机可是总不会忘得,所以我始终在寻找一款手机端好用的APP. 不管是时间 ...
- ffmpeg & mplayer & vlc 手册(转)
如何基于FFMPEG和SDL写一个少于1000行代码的视频播放器 http://blog.sina.com.cn/s/blog_51396f890100nd91.html http://lanhy20 ...
- Ubuntu 设置UFW防火墙
1:安装 sudo apt-get install ufw 2:启用 sudo ufw enable sudo ufw default deny 运行以上两条命令后,开启了防火墙,并在系统启动时自动开 ...
- How to make a custom WIDGET in OpenERP
转自:http://sahotaparamjitsingh.blogspot.com/2012/04/how-to-make-custom-widget-in-openerp.html Hello ...