用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. struts征程:1.初识struts2

    1.struts2在开发中所必须用到的jar包导入到项目的lib目录下 2.在web.xml中配置一个过滤器,代码格式如下 <filter> <filter-name>stru ...

  2. schemamvcSpringMVC+Spring3+Hibernate4开发环境搭建

    上班之余抽点时间出来写写博文,希望对新接触的朋友有帮助.今天在这里和大家一起学习一下schemamvc <?xml version="1.0" encoding=" ...

  3. 使用 IDEA 创建 Maven Web 项目 (三)- 编写一个简单的 WEB 应用

    编写 Servlet 类 首先,需要在 java 目录下,创建一个名为 org.smart4j.chapter1 的包.然后,在该包下创建一个 HelloServlet  的类,代码如下: packa ...

  4. 分享php工作中遇到的一些探究和技巧【2】

    1 如何定义linux和window通用的文件分隔符号 DIRECTORY_SEPARATOR :  目录分隔符,是定义php的内置常量.在调试机器上,在windows我们习惯性的使用"\& ...

  5. linux ftp安装和配置

    1. 启动VSFTP服务器 A:cenos下运行:yum  install  vsftpd B. 登录Linux主机后,运行命令:"service vsftpd start"C. ...

  6. websocket+前后端分离+https的nginx配置

    后端服务路径: 172.168.0.2:8080 172.168.0.2:7080 前端目录(html + css + js): /root/apps/mzsg-web 1.修改 /etc/nginx ...

  7. html5之datalist标签

    当我看到这个标签的时候,其实我是很愤怒的.因为我以前实现过这个标签的功能,当时是无比的费劲.什么js库呀,function呀.我靠,统统去屎吧,哥有datalist了.那种感觉就好像自己千辛万苦去追去 ...

  8. D3.js:力导向图

    var nodes = [ { name: "桂林" }, { name: "广州" }, { name: "厦门" }, { name: ...

  9. Tensorflow (1)

    'tf.placeholder' or 'tf.Variable' The difference is that with tf.Variable you have to provide an ini ...

  10. NGINX----源码阅读---config配置脚本

    config文件为nginx的配置入口文件. 1. #!/bin/sh # Copyright (C) Igor Sysoev # Copyright (C) Nginx, Inc. LC_ALL=C ...