自行编译CodeBlocks 13.12(比12.11方便了太多了)

因为想研究一下CB的插件,就需要用到CB的开发库,就只能自行编译它了。

前一段时间从官网下的是12.11,src目录下面有cbp工程文件,真是一阵窃喜哈,能用CB打开了,嗯嗯,不错。没想到结果杯具发生,搞了一天都没有利索,先折腾了wxWidgets2.8.12(参见前文:CodeBlocks配置方法积累),好不容易搞掂,CB却编译死活没戏了,源码级的错误,目前咱还搞不定……敲打

所幸,CB官方据说发挥了一年一升级的光荣传统,13.12-RC1 、13.12-RC2粉墨登场,下来源码一看,对于我这种小白第一眼看过去,真心不赖啊,支持wxWidgets2.9+3.0 && 32+64位编译,而且还带了原版的pot(i18n),而且插件源码目录下,同样也是支持wxWidgets2.9+3.0两种工程包(貌似插件里只有wx3.0版区分32/64位了)。

OK,开始动手编译CB,首先要有一个minGW32编译器(我用的是TDM4.7.1),还有wxWidgets3.0开发库(参见前文:CodeBlocks配置方法积累)。

然后,最重要的是:我们还需要一个已编译好的CodeBlocks(这个干吗呢?套用前人在编译CB时说到的“鸡生蛋蛋生鸡”——反正你得用CB编译CB,哈哈抓狂

现在,进入DOS窗口,输入

D:\codeblocks-13.12\src>set CB_ROOT=D:\devtools\CodeBlocks

D:\codeblocks-13.12\src>set GCC_ROOT=D:\devtools\MinGW

为了清爽编译,path环境变量也简洁设置了一下(windows的路径不能省,否则xcopy命令不能执行,我可是先吃了一次暗亏第二次才搞掂的!)

D:\codeblocks-13.12\src>set path=%GCC_ROOT%\bin;%SystemRoot%\system32;%SystemRoot%;


设定完毕,敲入"batch_build_core_30"(无引号,因为是为了研究插件用,就只编译了CB的核心部件),经过漫长的等待(10分钟吧),大功告成了,源程序目录下多了一个devel30文件夹

用NotePad++打开Autoversioning.cbp,可以看到编译所需环境已具备了

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<CodeBlocks_project_file>
	<FileVersion major="1" minor="6" />
	<Project>
		<Option title="AutoVersioning wx3.0.x" />
		<Option pch_mode="2" />
		<Option compiler="gcc" />
		<Build>
			<Target title="default">
				<Option output="..\..\..\devel30\share\codeblocks\plugins\AutoVersioning.dll" prefix_auto="0" extension_auto="0" />
				<Option object_output="..\..\..\.objs30\plugins\contrib\AutoVersioning" />
				<Option type="3" />
				<Option compiler="gcc" />
				<Option parameters="--debug-log --multiple-instance -na -ns -nd -p debug" />
				<Option host_application="..\..\..\devel30\codeblocks.exe" />
				<Compiler>
					<Add option="$(#CB_RELEASE_TYPE)" />
					<Add option="-pipe" />
					<Add option="-mthreads" />
					<Add option="-fmessage-length=0" />
					<Add option="-fexceptions" />
					<Add option="-Winvalid-pch" />
					<Add option="-DBUILDING_PLUGIN" />
					<Add option="-DHAVE_W32API_H" />
					<Add option="-D__WXMSW__" />
					<Add option="-DWXUSINGDLL" />
					<Add option="-DcbDEBUG" />
					<Add option="-DCB_PRECOMP" />
					<Add option="-DWX_PRECOMP" />
					<Add option="-DwxUSE_UNICODE" />
					<Add directory="..\..\..\include" />
					<Add directory="..\..\..\sdk\wxscintilla\include" />
					<Add directory="$(#WX30.include)" />
					<Add directory="$(#WX30.lib)\gcc_dll$(WX_CFG)\msw$(WX_SUFFIX)" />
				</Compiler>
				<Linker>
					<Add option="-Wl,--enable-auto-import" />
					<Add option="-mthreads" />
					<Add library="wxmsw$(WX_VERSION)$(WX_SUFFIX)" />
					<Add library="codeblocks" />
					<Add directory="..\..\..\devel30" />
					<Add directory="$(#WX30.lib)\gcc_dll$(WX_CFG)" />
				</Linker>
				<ExtraCommands>
					<Add after="zip -j9 ..\..\..\devel30\share\codeblocks\AutoVersioning.zip manifest.xml" />
					<Mode after="always" />
				</ExtraCommands>
			</Target>
			<Environment>
				<Variable name="WX_SUFFIX" value="u" />
				<Variable name="WX_CFG" value="" />
				<Variable name="WX_VERSION" value="30" />
			</Environment>
		</Build>
		<VirtualTargets>
			<Add alias="All" targets="default;" />
		</VirtualTargets>
		<Compiler>
			<Add option="-Wall" />
			<Add option="$(#CB_RELEASE_TYPE)" />
		</Compiler>


用CB打开这个工程时,需要注意在CB中注册两个全局环境变量

①wx30,将其base设定为"D:\devtools\resource\wxWidgets-3.0.0"(指向你的wx3.0开发库主目录)

②CB_RELEASE_TYPE,将其base设定为"-O2"(老外说滴,貌似他们都是砖家,反正是能用了!——开源还是老外的天下啊,国人当自强啊)

编译结果如下:

Output file is ..\..\..\devel30\share\codeblocks\plugins\AutoVersioning.dll with size 767.00 KB
Running target post-build steps
zip -j9 ..\..\..\devel30\share\codeblocks\AutoVersioning.zip manifest.xml
  adding: manifest.xml (160 bytes security) (deflated 54%)
Process terminated with status 0 (0 minute(s), 16 second(s))
0 error(s), 0 warning(s) (0 minute(s), 16 second(s))


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值