用vs2008编译wxWidgets 2.8.12

  FileZilla客户端源码3.5.3及以上版本依赖wxWidgets 2.8.12或更高版本,因此,编译FileZilla客户端首先需要编译wxWidgets 2.8.12。本文简单介绍一下VS2008编译wxWidgets 2.8.12的步骤和方法。

1  下载wxWidgets 2.8.12

  wxWidgets官网下载https://www.wxwidgets.org/downloads/,版本为wxMSW,下载后解压。

2  为wxWidgets 路径添加环境变量

  右键我的电脑->系统设置->高级->环境变量->系统变量->新建->输入名称:WXWIN  值:E:\codeEnvir\sdk\wxMSW-2.8.12。

  变量值需要指定wxMSW-2.8.12路径。连点保存退出。

3  命令行namke编译或vs工程编译

  打开Visual Stuido 2008 Command Prompt命令行工具,切换到E:\codeEnvir\sdk\wxMSW-2.8.12\build\msw目录。输入nmake /f makefile.vc SHARED=0 UNICODE=1 BUILD=debug MONOLITHIC=0,等待编译完成。

  SHARED属性值为0,表示生成lib。为1,表示成成dll;

  UNICODE属性值为0,表示生成多字节。为1,表示生成UNICODE,生成的lib或dll会用u标识。

  BUILD属性值为debug生成debug版本,为realease生成release。

  MONOLITHIC属性值为0表示生成多组件库,即多个lib等。为1表示生成单个组件库,只有一个lib和dll。

  在build/msw目录下,有wx.dsw和wx_dll.dsw工程文件,也可以直接打开工程文件编译。这种方法比命令行编译慢。

  编译完成后,会在wxMSW-2.8.12的lib文件夹下生成vc_lib,vc_lib内包含lib(或dll)以及mswud(unicode+debug)文件夹,mswud文件夹内包含需要引入的头文件setup.h和rcdefs.h。setup.h包含了当前编译环境的宏定义,rcdefs.h包含了对资源文件的宏定义。

4  工程属性配置

4.1  加入包含文件

  工程属性->C/C++->General->Additional Include Directories,加入wxMSW-2.8.12下的include和第三步生成的vc_lib\mswud。使用第二步的环境变量,配置如下:

$(WXWIN)\include
$(WXWIN)\lib\vc_lib\mswud

  工程属性->C/C++->Preprocessor->Preprocessor Definitions,加入

WIN32
_DEBUG
__WXMSW__
__WXDEBUG__
_WINDOWS
NOPCH

  其中,__WXMSW__是必须要写的,__WXDEBUG__用于调试。其余项根据工程要求自行设定。

4.2  加入库引用

  工程属性->Linker->General->Additional Library Directories,加入lib路径引用。

$(WXWIN)\lib\vc_lib

  工程属性->Linker->Input->Additional Dependencies,加入lib名称

wxmsw28ud_core.lib
wxbase28ud.lib
wxtiffd.lib
wxjpegd.lib
wxpngd.lib
wxzlibd.lib
wxregexud.lib
wxexpatd.lib
winmm.lib
comctl32.lib
rpcrt4.lib
wsock32.lib
wininet.lib

  在wxwidgets的引入lib中,core和base是必须要引入的,其余项可根据需要添加。

4.3  加入资源文件引用

  工程属性->Resoucres->Genera->Preprocessor Definitions,加入4.1节预处理器定义。

  工程属性->Resoucres->General->Additional Include Directories,加入4.1节文件包含。

5  编译测试程序minimal

  用vs2008打开wxWidgets 2.8.12的samples文件夹下minimal工程,按上述配置逐一检查配置项。编译运行后结果如下:

6  相关参考

1:《How to compile a wxWidgets application in Visual Studio 2008?》    地址:http://www.tuicool.com/articles/BRrAji

2:《跟我学wxWidgets开发》  地址:http://www.cnzui.com/archives/921

3:Installing wx 2.4 with VisualStudio 6 地址:https://wiki.wxwidgets.org/Installing_wx_2.4_with_VisualStudio_6

vs2008编译wxWidgets 2.8.12的更多相关文章

  1. vs2008编译FileZilla客户端源码

    vs2008编译FileZilla客户端源码 下载FileZilla客户端源码,下载地址https://download.filezilla-project.org/. FileZilla客户端解决方 ...

  2. Win7下VS2008编译QtiPlot

    Win7下VS2008编译QtiPlot By wangsh 2011-11-25 QtiPlot 是一款开源免费的科学绘图软件,可运行在多个平台(windows.Linux等)中,从功能上讲,Qti ...

  3. win10+vs2008编译比特币1.0版源码总结

    https://zhuanlan.zhihu.com/p/25074960 https://zhuanlan.zhihu.com/p/25095222 总体上是参考这两个链接,感谢大神的分享,但是中间 ...

  4. 【VS开发】【Live555-rtsp】在windows 使用vs2008编译live555

    在windows 使用vs2008编译live555 基于 liveMedia的程序,需要通过继承UsageEnvironment抽象类和TaskScheduler抽象类,定义相应的类来处理事件调度, ...

  5. GCC-4.6.3编译linux2.6.32.12内核出现“重复的成员‘page’”错误的解决方法

    使用gcc4.6.3编译linux2.6.32.12内核出现错误如下: In file included from drivers/net/igbvf/ethtool.c:36:0: drivers/ ...

  6. MinGW编译wxWidgets中的问题及解决方法

    其实网上wxWidgets编译相关的博文,都没写到关键点上,泛泛而谈——就写了执行几个命令,就万事大吉了! 维基百科上的这个页面讲解了编译中可能遇到的各种问题及解决办法.比较懒,不想翻译.wxWidg ...

  7. vs2008编译boost

    vs2008编译boost [一.Boost库的介绍] Boost库是一个经过千锤百炼.可移植.提供源代码的C++库,作为标准库的后备,是C++标准化进程的发动机之一.Boost库由C++标准委员会库 ...

  8. 【转】Windows下使用VS2008编译OpenCV 2.1 添加Intel TBB和Python支持

    Windows下使用VS2008编译OpenCV2.1 添加Intel TBB和Python支持 步骤: 1.仔细阅读OpenCV官网上的InstallGuide:http://opencv.will ...

  9. 编译mapnik(win7 环境下vs2008编译mapnik 0.7.1 成功)

    编译mapnik(win7 环境下vs2008编译mapnik 0.7.1 成功) ------by  wangsh 2012.02.22 Mapnik 是一个开源的 Python/C++ 地图渲染引 ...

随机推荐

  1. ADO读取EXCEL

    窗体上拖放ADOQuery1,DataSetProvider1,DataSource1,ClientDataSet1,OpenDialog1, ExcelApplication1,ExcelWorkb ...

  2. S3C2440之IIC裸机驱动

    花了两天的时间终于把这个搞定了,其实I2C的原理还是比较简单的,只是几个细节性的东西还是需要特别的注意,主要是需要注意一下几点: 1.rIICCON &= ~0x10; 清中断必须要在rIIC ...

  3. Android中ListView下拉刷新的实现

    ListView中的下拉刷新是非常常见的,也是经常使用的,看到有很多同学想要,那我就整理一下,供大家参考.那我就不解释,直接上代码了. 这里需要自己重写一下ListView,重写代码如下: packa ...

  4. Qt在表格中加入控件

    任务:使用QTableWidget动态生成表格,在每行的某两列中加入QComboBox下拉框控件和QPushButton按钮控件 有添加,删除,编辑功能,每行的按钮可以浏览文件夹并选择文件 1.新建一 ...

  5. .net 实战 根据configuration选项生成不同的config文件

    项目开发过程中都会遇到的问题,开发环境的配置肯定是和生产环境不一样的,一直都是重复手动拷贝,但是配置太多拷贝的弊端就显现出来了,为了解决这个问题可以有几种方案: 1.Web.config Transf ...

  6. 01--css编码技巧--css揭秘

    一 尽量减少代码重复 1.按钮 #btn { padding: .3em .8em; border: 1px solid #446d88; background: #58a linear-gradie ...

  7. UIImage学习笔记

    UIImage是什么 用来管理APP里的图片资源,可以用来表示设备支持的图片资源,不仅仅是jpg和png. UIImage是immutable的,因此也是线程安全的. iOS支持的所有的图片格式 链接 ...

  8. 五、RDD持久化

    Spark最重要的一个功能是它可以通过各种操作(operations)持久化(或者缓存)一个集合到内存中.当你持久化一个RDD的时候,每一个节点都将参与计算的所有分区数据存储到内存中,并且这些数据可以 ...

  9. 第11章:DOM扩展

  10. iOS -OC调用js页面

    我们这边和h5商量好传递一个结构体参数过去,然后由于解析的问题,导致我这里传递的参数,到h5那边不执行那边的方法 -(void)loginCallBack { NSDictionary *dic; u ...