用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. lucene 从2.4.0—3.6.0—4.3.1版本升级

    一.从2.4升级到3.6 替换原因:由于使用IBM的jdk导致了查询出现不稳定现象,原因无法找到,只好升级版本,毕竟版本很低 1)替换中文分词器,由原来的MMAnaylze替换为IKAnaylze 2 ...

  2. 应聘linux/ARM嵌入式开发岗位

    **************************************************************** 因为发在中华英才和智联招聘没有人采我所以我 在这里发布我的个人简历希望 ...

  3. 利刃 MVVMLight 1:MVVMLight介绍以及在项目中的使用

    一.MVVM 和 MVVMLight介绍 MVVM是Model-View-ViewModel的简写.类似于目前比较流行的MVC.MVP设计模式,主要目的是为了分离视图(View)和模型(Model)的 ...

  4. 当我们在谈论kmeans(3)

        本系列意在长期连载分享,内容上可能也会有所删改: 因此如果转载,请务必保留源地址,非常感谢! 博客园:http://www.cnblogs.com/data-miner/(暂时公式显示有问题) ...

  5. c语言中细节注意(初级)

    /* 编写如下函数,不使用下标运算符,返回字符串str中字符c的个数 (若不存在则为0). */ #include <stdio.h> int str_chnum(const char * ...

  6. java基础练习 9

    import java.util.Scanner; public class Ninth { /*取一个整数a从右端开始的4-7位.*/ public static void main(String[ ...

  7. 第一百三十二节,JavaScript,封装库--下拉菜单

    JavaScript,封装库--下拉菜单 封装库,增加了3个方法 shu_biao_yi_ru_yi_chu()方法,给元素设置鼠标移入移出事件,接收两个参数,参数是移入和移出时的执行函数(包含代码) ...

  8. Sipdroid实现SIP(五): 用Java实现的UserAgent

    I. 概述 UserAgent是SIP协议中的一个概念, 将"打电话"功能中的主叫和被叫逻辑上封装成UserAgent, 就像将"注册"功能的发起方和接收方封装 ...

  9. CHD 2014迎新杯比赛题解

    A. 草滩的魔法学校 分析: 高精度乘法 或 JAVA大数类 很明显 10000 的阶乘已经远远超过 64 位数能表示的范围了.所以我们要用一个比较大的数组来存放这个数.那数组要开多少位合适呢?我们不 ...

  10. const 修饰成员函数体

    经过const修饰的变量表示不能被修改这个容易理解,例如 const int kInt = 0; // kInt 不能再被赋予其他值 const int getValue(const char *ke ...