【Code::Blocks】windows 环境下编译 Code::Blocks(已修正)

Code::Blocks 在2012-11-25发布了最新的12.11版本,相比上一个版本(10.05),Code::Blocks 进行了许多改进和更新(Change log)。

引用 Wikipedia:Code::Blocks

Code::Blocks是一个免费开源跨平台IDE,使用C++开发,并且使用wxWidgets做为GUI函式库。Code::Blocks使用了插件架构,其功能可以使用插件自由地扩充。目前, Code::Blocks主要针对开发CC++程式而设计。

Code::Blocks目前支援WindowsLinuxMac 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,转载请注明。

时间: 2024-10-07 15:09:56

【Code::Blocks】windows 环境下编译 Code::Blocks(已修正)的相关文章

Openstack 二次开发之:在windows 环境下编译Openstack-java-sdk

在windows环境下使用maven对openstack-java-sdk进行编译 编译源文件 下载源代码 git clonehttps://github.com/woorea/openstack-java-sdk.git 下载并安装gpg4win http://ftp.gpg4win.org/ 本次过程中下载的是gpg4win-2.2.2.exe 配置gpg 查看 F:\github\openstack-java-sdk>gpg --list-key gpg:C:/Users/Eric.sun

openssl-1.1.1-pre1 windows环境下编译

场景         VS2015编译openssl-1.1.1-pre1 工具         nasm-2.14rc0-installer-x64.exe         ActivePerl-5.24.3.2404-MSWin32-x64-404865.exe         openssl-1.1.1-pre1.tar.gz 环境变量 C:\Program Files\NASM(添加汇编器路径) C:\Program Files (x86)\Microsoft Visual Studio

windows环境下编译NSS和NSPR

NSS(Network Security Services)是一套支持跨平台的库,能够在客户端应用和服务端应用的开发使用.使用NSS编译的应用能支持SSL V2和SSL V3以TLS,PKCS#5,PKCS#7,PKCS#11,PKCS#12,S/MIME,X.509 V3证书,还有其他安全标准. 如果我们需要使用NSS库,我们需要将下载的源码进行编译.在MDN官网能够下到已经发布版本的源码:ftp://ftp.mozilla.org/pub/mozilla.org/security/nss/r

Windows环境下log4cxx的编译及使用(转载)

1.介绍 Log4cxx是开放源代码项目Apache Logging Service的子项目之一,是Java社区著名的log4j的c++移植版,用于为C++程序提供日志功能,以便开发者对目标程序进行调试和审计.有关log4cxx的更多信息可以从Apache Loggin Service的网站http://logging.apache.org获得.当前的最新版本为0.10.0,本文内容及示例代码都是基于此版本. 2.获取软件包 可以从官方网站(http://logging.apache.org/l

Windows环境下使用VS2005编译OpenSSL

如何Windows环境下,使用VS2005编译OpenSSL,虽然这个问题在Baidu.Google上一堆,但安装中还是遇到些问题,在这里 记录下来希望能帮助大家不要在走弯路.注:我是在WinXP SP3下使用VS2005SP1下编译成功的,OpenSSL的版本是0.9.8l. http://www.cnblogs.com/moonset7/archive/2009/12/18/1627317.html by 月落上弦 一.编译OpenSSL  准备工作:下载OpenSSL源码 官方网站下载Op

Windows环境下使用cygwin ndk_r9c编译FFmpeg

 一.废话 最近学习,第一步就是编译.我们需要编译FFmpag,x264,fdk_aac,一步步来.先来讲一下FFmpeg,网上说的很多都是几百年前的,我亲测完美可用 联系我可以直接评论,也可以加我QQ:11635423  二.干货  我能力有限,但是我希望我写的东西能够让更多的人能够接受.我也是刚刚接触.做一个记录,也希望能够对其他人有好处. 几个概念理解一下:不理解也没关系.用了之后再说慢慢就理解了.主要是因为我们是windows 先是cygwin下的一些概念:        unix st

Windows环境下使用Cmake ndk编译fdk-aac

 一.废话 最近学习,第一步就是编译.我们需要编译FFmpag,x264,fdk_aac,下面是x264,网上说的很多都是几百年前的,我亲测完美可用 还是那句话 我能力有限,但是我希望我写的东西能够让更多的人能够接受.我也是刚刚接触.做一个记录,也希望能够对其他人有好处.联系我可以直接评论,也可以加我QQ:11635423  二.干货  准备:1.fdk_aac的源码  git clone https://android.googlesource.com/platform/external/aa

Windows环境下使用cygwin ndk_r9c编译x264

 一.废话 最近学习,第一步就是编译.我们需要编译FFmpag,x264,fdk_aac,下面是x264,网上说的很多都是几百年前的,我亲测完美可用 还是那句话 我能力有限,但是我希望我写的东西能够让更多的人能够接受.我也是刚刚接触.做一个记录,也希望能够对其他人有好处.联系我可以直接评论,也可以加我QQ:11635423  二.干货  准备:1.x264的源码 2.cygwin下载,安装,这个网上基本都有.我不讲太多.git cygdrive bash make 这几个都需要下载 3.ndk我

windows环境下使用apxs编译添加apache模块

windows环境下使用apxs编译添加apache模块 简介说明:本文使用mod_limitipconn模块为例. 环境: windows7 x86系统 apache 2.4.18 目标: 在windows环境下,利用mod_limitipconn0.24源码.apxs为apache2.4.18添加mod_limitipconn模块. 分析: limitipconn模块最新版已经支持apache2.4了.但是没有编译好的对应版本.因此需要自己动手编译模块.在windows下要实现这个目标,需要