用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. Study notes for Discrete Probability Distribution

    The Basics of Probability Probability measures the amount of uncertainty of an event: a fact whose o ...

  2. Android中Bitmap, Drawable, Byte之间的转化

    1.  Bitmap 转化为 byte ByteArrayOutputStream out = new ByteArrayOutputStream(); bitmap.compress(Bitmap. ...

  3. [Thinkbayes]贝叶斯思维读书笔记-1-贝叶斯定理

    使用贝叶斯定理,目前来看最重要的一点在于假设.就是未知事件已知化,同时也要注意假设的全程性,不能从中开始新的假设,这种假设往往是不全面的. 我自己找到的假设的方法有两种,一种是命名,一种是时序.全程性 ...

  4. iOS 开发中中 textView 作为子控件点击输入文本,然后退出文本的方式

    方式1. 使用当双击输入的时候弹出键盘同时,使用手势和通知监听键盘的方法实现 代码如下: 1. 监听键盘通知 [[NSNotificationCenter defaultCenter] addObse ...

  5. [.net] c# webservice

    采用的工具VS2010生成工程 1. 生成webservice工程:建 ASP.NET 空WEB 应用程序. 2. 在建好的ASP.NET 空WEB应用程序中新建项“web 服务”. 完成上述内容工程 ...

  6. LeetCode题解 15题 第二篇

    之前写过一篇,这是第二篇.上一篇用了多种编程语言来做,这一次是以学算法为主,所以打算都用python来完成. 4. Median of Two Sorted Arrays There are two ...

  7. springMVC框架中json处理

    1.在项目中导入jackson-core.jar包 2.使用@ResponseBody注解,此注解会自动装换为json 如图: 3.如此,便可以得到json对象

  8. luogu P2580 于是他错误的点名开始了

    luogu  P2580 于是他错误的点名开始了 https://www.luogu.org/problem/show?pid=2580 题目背景 XS中学化学竞赛组教练是一个酷爱炉石的人. 他会一边 ...

  9. java基础练习 8

    public class Eighth { /*判断101-200之间有多少个素数,并输出所有素数.素数又叫质数,就是除了1和它本身之外,再也没有整数能被它整除的数.也就是素数只有两个因子.*/ pu ...

  10. android两种方式获取AsyncTask返回值

    获取AsyncTask返回值,在Activity中使用. 引用链接:https://www.oschina.net/code/snippet_725438_49858#72630 [1].[代码] [ ...