codeblocks 搭建 wxWidgets :

经过网上的多次搜索整理,整理有一个最简便的配置方式,如下:

1:http://wxpack.sourceforge.net/Main/Downloads //wxPack下载(我下载的是wxPack_v2.8.12.01.exe),这样就不用下载wxMSW安装包或源码编译了;

2:wxWidgets可以和VC配合,但是这样配置麻烦不说,而且没有发现可视化界面,经过查询可以和codeblocks编辑器和DEVC++配合,这我用了codeblocks(codeblocks-  10.05mingw-setup)编辑器;

3:安装完成后,启动codeblocks,选择配置wxWidgets工程就可以了;

说明:我还安装了codeblocks-10.05mingw-setup,应为这里包含gcc和g++编译器;
      当然安装VS2005也可以;

//以下来自转载:

VC++6.0 搭建 wxWidgets

和 GTK、QT、SWT、SWING 一样,wxWidgets 也是一种开源跨平台的 GUI 框架。因 wxWidgets 和 MFC 有些渊源,有些亲近,故要体验一番 wxWidgets。现在最新版是 2.8.7。wxWidgets 程序还可运行于 Windows CE、Palm OS。不但包括 GUI,还有 Media、Socket、ODBC 等库。

详情请见 wxWidgets 的官方网站是:http://www.wxwidgets.org

本篇介绍 VC++6.0 下如何搭建 wxWidgets 的开发环境,包括编译 wxWidgets 源码和配置 VC 环境。所用 wxWidgets 的版本是 2.8.7。

第一步:下载并安装 wxWidgets

在 http://www.wxwidgets.org/downloads/ 下载到 wxWidgets 源码。
你可以下载 Windows 安装版 http://prdownloads.sourceforge.net/wxwindows/wxMSW-2.8.7-Setup.exe (11.9M)
或者是 Zip 压缩版 http://prdownloads.sourceforge.net/wxwindows/wxMSW-2.8.7.zip (15.9M)

假如我们下载的是 wxMSW-2.8.7-Setup.exe,就可运行它,过程中我们假定选择的安装目录是 d:/wxWidgets-2.8.7。 完成后,我们看到安装目录所在空间的大不是 127M。

注意要给 wxWidgets 有足够的剩余空间,单是编译一个版本的静态库就会增至300多M,如果还要编译动态库再选择上 DEBUG 或者 RELEASE、ASCII 或是 UNICODE 等,还要编译 sample 的话,最后空间能够暴到 2G。

第二步:编译 wxWidgets

编译方式有两种,一种是在 VC++ 中打开 wx.dsw 进行编译,另一种是用 nmake 在命令行下编译。

1) nmake 编译

运行 cmd.exe 来到命令行下,进入到目录 d:/wxWidgets-2.8.7,然后执行

D:/wxWidgets-2.8.7>nmake -f makefile.vc

默认是编译成 DEBUG 版的静态库。也许我们在编译之前需要根据自己的需要进行一些设置:

打开 D:/wxWidgets-2.8.7/include/wx/msw/setup.h

保证第 110 行的 #define wxUSE_DEBUG_NEW_ALWAYS 设置为 0。默认是 0 的。
将 1137 行的 #define wxUSE_IOSTREAMH 设置为 0,否则无法使用 VC 的模板库(不能用 std 命名空间下的)。默认是 1。
如果要使用 wxWidgets 提供支持数据库的 ODBC 类,将 #define wxUSE_ODBC 设为 1。默认是 1。

如果你想生成动态库,或生成的是 Release 版的,你可以修改 D:/wxWidgets-2.8.7/build/msw/config.vc 文件。打开该文件你能看到可以更改的选项,其中重要的几个如下:

# What type of library to build? [0,1] -- 生成库的类型,0为静态库,1为动态库
SHARED = 0

# Compile Unicode build of wxWidgets? [0,1] -- 是否使和 UNICODE,0 否,1 是
UNICODE = 0

# Type of compiled binaries [debug,release] -- 是 debug 还是 release
BUILD = debug

其中还有许多顾名思义的选项,请根据需求修改。

对于 config.vc 中的选项也可以通过命令行覆盖掉配置文件中的值,如编译命令用

D:/wxWidgets-2.8.7>nmake -f makefile.vc SHARED=1 UNICODE=1 BUILD=release

就是编译 release 版,支持 UNICODE 的动态库了。

动态库和静态库的不同体现在使用上,静态库中的代码能编译进应用程序的 exe 文件中,这个 exe 文件可单独发布,但体积较庞大。动态库可让 exe 文件执行时加载,虽然 exe 文件体积小了,但发布时必须带着相应的动态库文件。

2) VC 编译
还可用 VC++ 打开 D:/wxWidgets-2.8.7/build/msw/wx.dsw,然后选择 Build->Batch Build... ,我们看到每个工程都有 16 个配置,请根据应用需求勾选你的配置,如所有工程的 Win32 Release 和 Win32 Debug 版本,然后 Build,如果你照单全收,编译将非常耗时而占空间。这种编译方式就是可以一下操作帮你编译出所有需要的版本。

好,等等编译完之后,在目录 D:/wxWidgets-2.8.7/lib/ 会有产生一个目录:vc_lib 是静态库的目录,默认编译有 17 个静态。如果是编译成动态库则会产生目录 vc_dll。在 vc_lib 中有 mswd 目录,release 版对应的是 msw,里面含有 Debug 和 Release 版的 setup.h。

注意到 Debug 版和 Release 以及和 UNICODE 、动态库、静态库组合条件编译生成的文件和目录名。
静态库编译到 D:/wxWidgets-2.8.7/lib/vc_lib 目录中
动态库编译到 D:/wxWidgets-2.8.7/lib/vc_dll 目录中
文件命名为 wxmsw28d_core.lib 文件为例:
wxmsw28_core.lib         ---- Release,非 UNICODE  版
wxmsw28d_core.lib       ---- Debug,非 UNICODE  版
wxmsw28u_core.lib       ---- Release,UNICODE  版
wxmsw28ud_core.lib     ---- Debug,UNICODE  版
对于 dll 文件的命名规范也一样的。
在 vc_lib 和 vc_dll 下如果全编译了会有四个目录,msw、mswd、mswu、mswud 意义同上。

编译完后可以把那些过程中的目标文件删了,它们占的空间实在是太大。要是你还想以后重新编译用就留着吧。

第三步:创建 wxWidgets 项目

创建一个 Win32 Application 的空项目,项目名为 wxHello
Proejct->Settings (Alt+F7) 进入项目设置
1. C/C++选项卡->Code Generation -> use run-time library 设置为: Debug MutilThread DLL
2. C/C++选项卡-> PreProcessor -> PreProcessor Definitions 设置加上 __WXMSW__,__WXDEBUG__ ,如果是 Release 版,则只需加上 __WXMSW__。
3. C/C++选项卡-> PreProcessor -> Additional include directories 设置为 D:/wxWidgets-2.8.7/include,D:/wxWidgets-2.8.7/include/lib/vc_lib/mswd,  这是设置附加 Include 路径。
4. Link 选项卡-> Input -> Object/library modules 设置加上 wxmsw28d_core.lib wxbase28d.lib wxtiffd.lib wxjpegd.lib wxpngd.lib wxzlibd.lib wxregexd.lib wxexpatd.lib 这些 Lib(没有这四个 libcomctl32.lib rpcrt4.lib winmm.lib wsock32.lib 的话请加上,关键是前两个)。如果要使用 wxODBC 就加上wxbase28d_odbc.lib。
5. Link 选项卡-> Input -> Addtional library path 设置为: D:/wxWidgets-2.8.7/lib/vc_lib。

注意:编译成不同版的执行代码应填入相应的 Additional include directories 和 Addtional library path。
编译成依赖 DLL 的执行文件还需要加上预处理指令 WXUSINGDLL
用UNICODE 编译则需要加上预处理指令 _UNICODE
还有一种 Universal编译,要加上预处理指令 __WXUNIVERSAL__

这样一个普通的WxWdigets项目就设置好了.

我们测试 WxWidgets 自带的例子 minimal。新建一个 minimal.cpp 文件,内容同 D:/wxWidgets-2.8.7/samples/minimal/minimal.cpp,编译,不出意外,成功了!

也可设置全局的目录

前面我们是为项目配置 Additional Include Directories 和 Additional library path。我们可以把这设置成全局的。就可以不用在项目中单独设置。全局设置有其缺陷,无法分开是 vc_lib 还是 vc_dll 中的 lib,是 mswd 还是 msw 中的 wx/setup.h 文件。在这里设置 Source Files 还是必要的。并且在下面前两个 Include Files 放在全局设置里也较合适。

进到 VC++ 的 Tools->Options->Directories,选择 "Include Files" 后,添加
D:/wxWidgets-2.8.7/include
D:/wxWidgets-2.8.7/contrib/include
D:/wxWidgets-2.8.7/lib/vc_lib/mswd

对应于 Project Settings -> C/C++ Tab->Preprocessor 中的 Additional include directories

再选择 "Libraries Files",添加
D:/wxWidgets-2.8.7/vc_lib

对应于 Project Settings -> Link Tab -> Input 中的 Additional library path

再选择 "Source Files",添加
D:/wxWidgets-2.8.7/src

最后大致比较一下生成程序的大小

Release 静态库版(vc_msw) minimal.exe 1.11M,可单独发布
Debug  静态库版(vc_mswd) minimal.exe 2.52M,可单独发布
Release 动态库版(vc_mswdll)   minimal.exe 68K,加上wxmsw28_core_vc_custom.dll (2.85M) 和 wxbase28_vc_custom.dll (1.11M),共 4M
Debug 动态库版(vc_mswddll)  minimal.exe 96K,加上wxmsw28d_core_vc_custom.dll (4.26M) 和 wxbase28d_vc_custom.dll (1.82M),共 6.1M

这是一个简单的 wxWidgets 程序,只用到了两个动态库的情况。在用到 wxWidgets 库较少时用静态库来编译发布文件会小一些,若是用到组件多的时候,可能用动态库方便些,请酌情决定。

//另一篇:

1、 安装
运行wxMSW-2.8.3-Setup1.exe,将之安装到不带空格符号的目录中,本例为C:\wxWidgets-2.8.3;

2、 编译和配置
具体见C:\wxWidgets-2.8.3\INSTALL-MSW.txt
(1) 用VC6.0编译
进入C:\wxWidgets-2.8.3\build\msw,用VC打开wx.dsw工程文件。进入Build—〉Batch Build,只选中所有工程各自的Win32 Release和Win32 Debug版本,然后开始Build。结果:a)在C:\wxWidgets-2.8.3\build\msw目录下生成了多个包含了目标文件的目录,占了很大空间,可以删掉;b)在C: \wxWidgets-2.8.3\lib\vc_lib下生成了多个个lib文件,Release和Debug版本各一半,另外还包括了msw和mswd两个目录,里面含有Release和Debug版的setup.h。
(2) 在VC6.0中配置
Tools—〉Options—〉Directories,在选中“Include Files”后,添加
C:\wxWidgets-2.8.3\include
C:\wxWidgets-2.8.3\lib\vc_lib\msw
C:\wxWidgets-2.8.3\lib\vc_lib\mswd
路径;选中“Libraries Files”,添加
C:\wxWidgets-2.8.3\lib\vc_lib。
(3) 检验效果
进入C:\wxWidgets-2.8.3\samples\listbox,打开该工程,Project—〉set active project—〉listbox,在Project—〉Dependencies中把core和base两个去掉钩。编译,运行,通过。

3、建立wxWindows工程
(1) 新建 —〉Win32 Application,创建空工程,
(2) 工程 —〉设置:
C/C++选项卡->Code Generation -> use run-time library 设置为: Debug MutilThread DLL

Link 选项卡-> General -> 对象/库模块 设置为: wxmsw28d_core.lib wxbase28d.lib wxtiffd.lib wxjpegd.lib wxpngd.lib wxzlibd.lib wxregexd.lib wxexpatd.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib oleacc.lib odbc32.lib.
一般的wxDigets GUI项目比普通windows 程序多wxmsw28d_core.lib wxbase28d.lib wxtiffd.lib wxjpegd.lib wxpngd.lib wxzlibd.lib wxregexd.lib wxexpatd.lib这些Lib

http://blog.csdn.net/kypfos/article/details/3030951

windows下 搭建 wxWidgets 开发环境相关推荐

  1. Windows下搭建ESP-IDF开发环境,适合ESP32/S2/C3/S3系列模组二次开发

    前言 本教程适用于以下两种用户: ①无Linux环境搭建经验或搭建Linux开发环境不成功: ②使用安信可windows一体化环境IDE V1.5开发环境搭建不成功: 本教程提供了windows下搭建 ...

  2. windows下搭建iphone开发环境

    在windows下搭建iphone开发环境,我是这样做的. 1. 安装虚拟机,并且在虚拟机中安装mac os: 2. 启动虚拟机的mac os, 然后安装 iphone sdk. 具体请参考以下几篇文 ...

  3. 乐鑫Esp32学习之旅② 巧用eclipes编辑器,官方教程在Windows下搭建esp32开发环境,打印 “Hello World”。

    本系列博客学习由非官方人员 半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 1. 爬坑学习新旅程,虚拟机搭建esp32开发环境,打印 " ...

  4. Windows下搭建PHP开发环境

    PHP集成开发环境有很多,如XAMPP.AppServ......只要一键安装就把PHP环境给搭建好了.但这种安装方式不够灵活,软件的自由组合不方便,同时也不利于学习.所以我还是喜欢手工搭建PHP开发 ...

  5. windows搭建python开发环境方法_04 Windows下搭建 Python 开发环境 - Python 入门教程

    前面两个小节中我们已经学习了在 MacOS 和 Ubuntu 中安装 Python 的开发环境.当然,作为用户基数最多的 Windows 操作系统,我们当然不会忘记,这节课我们就来学习下如何在 Win ...

  6. 如何在Windows下搭建Android开发环境

    搭建Android开发环境 1 下载Android SDK http://code.google.com/android/download.html 这是官方网址,进入后跟着流程走,选择适合于自己平台 ...

  7. Windows下搭建MeeGo开发环境

    一.我搭建的实际环境 硬件环境: 32-bit Intel Core 2 CPU ,CPU支持VT虚拟化技术的. 软件环境: 32位Windows 7 旗舰版. 文件系统: NTFS文件系统. 二.安 ...

  8. windows下搭建Linux开发环境

    以前一直都是安装的双系统来运行windows和linux,当想学习一下linux编程的时候就跑到linux下面去,做其他事情的时候就转到windows下面来.虽然在linux下也学会了使用wine,也 ...

  9. Windows下搭建IOS开发环境(一)

    原文:http://blog.csdn.net/shangyuan21/article/details/18153605 http://blog.csdn.net/lizhenmingdirk/art ...

最新文章

  1. 成功解决pypmml.base.PmmlError: (‘MalformedInputException‘, ‘Input length = 1‘)
  2. nl.basjes.parse.useragent.UserAgentAnalyzer内存泄漏问题解决
  3. 使用FuncT, TResult 委托实现API日志的记录
  4. 「澳洋主数据项目」主数据促企业变革
  5. oracle事务重要属性,Oracle中的事务(2)--属性和隔离级别
  6. vs设计窗口不见了_碳纤维的巅峰:VS沛纳海616V3
  7. 其实Go 1.17 就支持泛型了,具体该怎么用呢?
  8. C# 设置开机自启动
  9. matlab直方图均衡化函数
  10. Windows Server2012搭建邮件服务器
  11. 开启CPU虚拟化功能
  12. 计算机无法重复按键,电脑总是自动重复按键盘上的一个键
  13. Redis五大基本数据类型(String、LIst、Set、Hash、ZSet)及其底层结构
  14. CVer最想知道的,简单分析下《2020年度中国计算机视觉人才调研报告》
  15. 数模学习(模糊数学篇)——模糊识别(python实现)
  16. 音频格式转换(ffmpeg)
  17. 简繁 data_gb.php 下载,简繁转换的程序_php
  18. 亚马逊必备神器:防关联浏览器
  19. linux系统下的rz、sz详解
  20. 全志A31下5M的CMOS Camera移植修改记录表

热门文章

  1. Unity 碰撞体 composite
  2. 通信机制之异步通信和同步通信
  3. Rimworld Mod教程 第十一章:术语名字
  4. 最小二乘拟合(矩阵)
  5. 小米6无人直播详细教程+工具包
  6. SQL基础教程|第一章:数据库和SQL
  7. iOS即时通讯进阶 - CoacoaAsyncSocket源码解析(Connect篇)
  8. ant design pro入门踩坑:删除页面文件报错
  9. 云缓存哪家便宜_云服务器哪家最便宜
  10. 用于信号处理的Xilinx FPGA XC7K325T PCIeX8 FMC处理板卡