从事PHP有将近两年了,一直都是网页,想自己做个窗口程序玩玩。
有一些c/c++的基础,想搞一个跨平台的,开始想搞QT,但想想前景好像不太好,诺基亚都差不多了。
最后绝定玩下wxwidgets
首先从网上下载个IDE,codelite这个好像是专门为wxwidgets设计的,于是果断安装之。
我安装是最全的版本,就是全有的那种。安装好后创建一个demo运行,会有很多的报错。基本是说找不到文件的。
在网上查,设置了environment variables等很多资料,本地是可以跑了,但把exe传到别电脑会发依赖文件的问题。
解除对*.dll动态链接库的方法:使用静态编译方式重新编译wxWidgets 我专门去wxWidgets主页下了新一点的wxWidgets 2.8.12源码来测试了一下。
我这里将wxWidgets 2.8.12源码安装到了 D:\wxWidgets-2.8.12 编译: ① 打开cmd控制台,将MinGW-4.4.1目录下面的mingwvars.bat拖到cmd里,运行一下。 这里是配置gcc的PATH,或者手动输命令:
Set PATH=D:\CodeLite\MinGW-4.4.1\bin;%PATH%
D:\CodeLite\MinGW-4.4.1是MinGW安装路径,这样配置好PATH。 ② 设置wxWidgets-2.8.12的编译配置文件: D:\wxWidgets-2.8.12\build\msw\config.gcc 打开这个文件,默认设置是这样的:
# What type of library to build? [0,1] SHARED ?= 0
# Compile Unicode build of wxWidgets? [0,1] UNICODE ?= 0
# Type of compiled binaries [debug,release] BUILD ?= debug
# Version of C runtime library to use. You can change this to
# static if SHARED=0, but it is highly recommended to not do # it if SHARED=1 unless you know what you are doing. [dynamic,static] RUNTIME_LIBS ?= dynamic 这几个是编译wx常用的配置选项
第一个是说生成动态链接版wx库或静态版wx库。
第二个是使用Unicode或者不使用。
第三个是编译debug或release版本wx库,通常debug和release库都要编译一遍,因为都要用。调试时一般用debug库,有很多调试信息,程序较大。调试完成,没发现问题了,就用release库发布软件。
第四个是说: 如果SHARED值为0,那么可以将RUNTIME_LIBS设置为static使用静态版本的底层C运行时库。 如果SHARED值为1,那么最好不要更改RUNTIME_LIBS ?= dynamic这项。
简单说就是静态链接wx库可以配合底层静态C运行时库(MinGW C 运行时库)或底层动态C运行时库; 动态链接动态链接动态链接动态链接wxwxwxwx库应该只和底层动态库应该只和底层动态库应该只和底层动态库应该只和底层动态CCCC运行时库运行时库运行时库运行时库((((MinGW C MinGW C MinGW C MinGW C 运行时库运行时库运行时库运行时库))))一起使用一起使用一起使用一起使用。。。。 在(1)中CodeLite默认就是使用动态wx库配合底层动态C运行时库的,所以默认需要两个依赖:wxmsw28u_gcc_custom.dll和mingwm10.dll
③ TDM-GCC编译静态的wxWidgets库 我编译了Unicode版本的Debug和Release版本静态库。Debug版的config.gcc配置项: SHARED ?= 0 UNICODE ?= 1 BUILD ?= debug RUNTIME_LIBS ?= dynamic ************************************* 在①里的cmd控制台下:
cd /d D:\wxWidgets-2.8.12\build\msw\ mingw32-make -f makefile.gcc 然后等待编译完成。Debug版静态库生成后,再改config.gcc SHARED ?= 0 UNICODE ?= 1 BUILD ?= release RUNTIME_LIBS ?= dynamic ****************************** 在控制台再来一遍编译: mingw32-make -f makefile.gcc 然后等待编译完成。这样debug和release静态库就都完成,可以用了。 静态库生成后只有\lib\gcc_lib\目录,只有*.a文件,就是静态库,没有gcc_dll目录。
④测试新的静态的wxWidgets库 用这debug和release两个版本测试了一下。 由于使用由于使用由于使用由于使用TDMTDMTDMTDM----GCCGCCGCCGCC库库库库,,,,默认就是使用底层静态默认就是使用底层静态默认就是使用底层静态默认就是使用底层静态CCCC运行时库运行时库运行时库运行时库,和上层wx静态库一起使用。 考虑config.gcc里的配置项: RUNTIME_LIBS ?= dynamic 由于TDM-GCC默认使用静态库的特性,当SHARED ?= 0时上面那句其实失效,默认为static了。 测
试了个最简单的对话框,代码使用codelite自动生成的对话框代码测试一把。
CodeLite如果要换wxWidgets的库,要设置两处:
第一处::::
Settings菜单-->Environment Variables: Environment Variables对话框中,把WXWIN路径改成新的:D:\wxWidgets-2.8.12 并把PATH和WXCFG里的gcc_dll改成gcc_lib。
第二处:
Settings菜单-->Tags Settings: 在Tags Options对话框里,选中左边Include Files,把老版的wx\include目录删掉, 上面列表加上新的:D:\wxWidgets-2.8.12\include 下面列表加上新的:D:\wxWidgets-2.8.12\include\wx\univ D:\wxWidgets-2.8.12\include\wx\unix
然后重启CodeLite。。。。
分享到:
相关推荐
VS2013搭建wxWidgets开发环境.7z
VC下搭建 wxWidgets 开发环境.docx
vc 下的wxwidgets 环境配置教程
WIN版本的wxWidgets-3.1.3.zip wxWidgets源码 来自官网 下载链接 https://github.com/wxWidgets/wxWidgets/releases/download/v3.1.3/wxWidgets-3.1.3.zip 不想花积分的可以直接下载。
windows codelite mingw wxwidgets
wxWidgets是一个程序员的开发工具包,这个工具包用来开发用于桌面或者移动设备的图形界面应用程序。或者说它提供了一个框架,它作了很多底层的管家婆似的工作以便给应用程序提供一些默认的行为。wxWidgets库给程序员...
wxWidgets开发教程pdf
《wxWidgets跨平台程序开发》系统地介绍了wxWidgets及其跨平台程序开发。全书共有20章,第·1·章简要介绍了·wxWidgets·的发展历史和框架结构,第2章介绍了wxWidgets的程序框架及其实现,第3章深入剖析了wxWidgets...
用wxWidgets开发的一个小计算器。比较简陋。
(1)编写简单win32 application,了解程序的框架,掌握它的基本工作原理。 (2)修改win32 application,添加资源,尝试增添新的功能,通过网络学习加载头文件和...(3)通过网络,了解wxWidgets,并掌握它的安装和配置方法。
这是一部学习wxWidgets的基础文档,能够让你快速的学习
dirtchat wxwidgets 开发的 IM
wxwidgets_跨平台程序开发
中文教程,目录详细,使用wxWidgets进行跨平台程序开发
wxWidgets2.8 win32 库文件 编译为unicode release 版本 包含include和lib目录,编译链接参数需加入-static
wxWidgets开发技术
VS2015下编译的wxWidgets静态库3.1.0,可用平台为v140_xp,支持winxp与win7以上版本。
里面包含wxWidgets开发的简单程序示例,有说明。属于入门级资料
wxwidgets开发入门 API查询 深入学习wxwidgets
wxWidgets -3.1.2 官方文档 离线版,chm格式,里面包含了所有的 wxWidgets类结构说明,非常好用.