wxWidgets3.0.0的静态编译

    对于GUI编程,最早使用过VC6的MFC,之后使用过GTK,Java的Swing,前一段时间还摆弄过纯Windows原生的Win32 API,现在则开始折腾wxWidgets,但是这些技术的学习了解并没有做出像样的软件,基本都停留在把样例编译出来后,简单的了解一些控件怎么使用而已.觉得不能胡乱折腾下去了,应该用这些技术扎扎实实的做一些东西.

    工作是做嵌入式机顶盒软件开发的,而且主要是Bootloader一块,对GUI编程学习到的内容不能直接用于工作,这样导致学习的效率极其底下.现在工作起来,就喜欢用make,不喜欢用IDE,IDE系列VC6, Eclipse, NetBeans, CodeBlocks, CodeLite, LiteIDE(Go)还有一些记不住名字的小IDE,总之,感觉没有必要学习IDE,啃下IDE大块头也是超级费时间.用make的好处在于我想怎么让编译器工具为我工作,就怎么为我工作,而IDE虽然也提供了非常人性化的编译配置功能, 可是配置起来也麻烦的很.

    倾向于用绿色软件,解压即用,不用即删,干干净净的来,干干净净的走.而且倾向于用静态链接,所有的内容打包到一个exe中,当然这里说的肯定是一些小软件,而那些一个软件中由成百上千个文件组成的或支持插件的小型软件,推荐用动态链接,这样的软件一个人估计也干不出来,不过可能也有这样的高人.

(1) 下载

wxWidgets-3.0.0.zip 主源码包

wxMSW-3.0.0_gcc471TDM_ReleaseDLL.7z 用GCC4.7.1编译的动态链接库

wxMSW-3.0.0_gcc471TDM_Dev.7z 包括动态链接库和导出库(类似于静态库)

(2) 先用上面这几个包,测试官方的HelloWorld示例.把wxWidgets-3.0.0\include与wxMSW-3.0.0_gcc471TDM_Dev\lib\gcc471TDM_dll\mswu 添加到编译器头文件搜索路径中,把wxMSW-3.0.0_gcc471TDM_Dev\lib\gcc471TDM_dll添加到链接器的搜索路径中,编译器用的是官方的Mingw gcc4.7.1,编译后的exe才280多KB,双击运行的时候,提示需要一些动态链接库,把这些动态链接库所在的路径添加到系统的环境变量PATH中,即可以运行.

(3) 编译wxWidgets的静态库.进入wxWidgets-3.0.0\build\msw,对config.gcc进行修

改,修改56行的为:

BUILD ?= release

直接编译发布版本的静态库,然后执行mingw32-make -f makefile.gcc 开始编译静态库,编译的输出在wxWidgets-3.0.0\lib\gcc_lib

(4) 编译完成后将wxWidgets-3.0.0\lib\gcc_lib添加到链接器的搜索路径,并把wxWidgets-3.0.0\lib\gcc_lib\mswu添加到编译器的头文件搜索路径中.

(5) 再次编译Hello World,发现生成的exe变大,并且还提示需要libgcc_s_dw2-1.dll与libstdc++.dll等,給链接器传递-static选项,再次生成exe,直接双击运行,不再提示需要动态链接库了,exe大小要8MB多.

(6)再次修改入wxWidgets-3.0.0\build\msw\config.gcc

修改35行为:

LDFLAGS ?= -static

修改147行为:

RUNTIME_LIBS ?= static (不确认这个修改是否起作用)

(7)进入wxWidgets-3.0.0\samples执行mingw32-make -f makefile.gcc,开始编译示例代码,完成后会在每个示例代码目录下生成gcc_mswu目录,这个目录中存放编译过程中生成的目标文件和最终的示例程序,每个示例程序的可执行文件也至少8MB多.

(8)拷贝wxFormBuilder目录到wxWidgets-3.0.0,这样wxWidgets的完整开发环境就基本搭建完成了.

(9)删除wxMSW-3.0.0_gcc471TDM_ReleaseDLL.7z,wxMSW-3.0.0_gcc471TDM_Dev.7z与解开的文件夹.

转载于:https://my.oschina.net/u/126042/blog/183232

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值