[转载] wxWidgets-2.6.2 + Microsoft Visual C++ 2005 Express + Platform SDK 安装使用手记

本文主要是介绍[转载] wxWidgets-2.6.2 + Microsoft Visual C++ 2005 Express + Platform SDK 安装使用手记,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

[转载] wxWidgets-2.6.2 + Microsoft Visual C++ 2005 Express + Platform SDK 安装使用手记

本文原始地址:
http://spaces.msn.com/members/layesuen/Blog/cns!1plK5TnXHOmd1OwuUNSIGZfQ!443.entry

wxWidgets 的确是不错的东西啊,这几天看了它的 document
和一些教材,越看越激动哦。

wxWidgets 虽然支持大多流行编译器,但若是开发侧重
Windows 平台的应用程序,笔者以为,还是使用 VC
比较合适。为什么呢?大家知道,VC
编译器是很快的(不过有些人觉得 BC
要更快一点),且生成的可执行文件较小。另外,一个最最最重要的优点就是
VC
的调试器实在太好了。易用、稳定,简直无人能及。还有,VC
的 IDE 也是相当不错,尤其是
IntelliSense,也是属于无人能及的那种,而且界面比较漂亮
:P 所以,我选择用 VC 配合 wxWidgets 工作。

最强的反对 VC 意见可能会来自 gcc/gdb
的忠实拥护者们,gcc/gdb 的确堪称是 C++
编译器/调试器的标准。但是,Windows
下的移植版似乎还不怎么另人满意,至少目前还很不满意。首先是慢,MinGW
慢,Cygwin 更慢(且后者还拖着个硕大的
dll)。像我这种比较性急的人总在写完一小段代码后就迫不及待的编译看看,要是以
MinGW 或Cygwin
那种速度恐怕不可能了吧。其次毕竟是移植过来的东西,比起土生土长的
VC 毕竟还是问题多多。还有 IDE,没找到几个支持 MinGW
/ Cgywin 的像样的 IDE,好一点的可能要算 DevC++
了吧,还有整合了 wxWidgets 和窗体编辑器的
wxDevC++,SourceForge 都有下载。但还是不能和 VC 的 IDE
相比。最后,有人要说 gcc 是 everything and
everywhere,担心 VC
程序的移植性。其实那是完全不用考虑的问题,VC8
对标准 C++ 的支持已近相当不错,只其实要用标准 C++
写程序,在 VC 下可以编译,在 UNIX/GNU Linux 环境下的
gcc 一样可以编译。如果你真正喜欢 gcc
的话,也可以在开发阶段使用
VC,而在生成最终产品时使用 gcc :D

说了这么多,下面是正题,我如何安装和使用
wxWidgets。

先是安装 Microsoft Visual C++ 2005 Express 和 Platform
SDK。可从微软网站上下载,都是免费的(其中前者有一年的使用期限)。Visual
C++ 的安装没什么说的,Platform
若完全安装比较庞大,如果你想节省点空间不妨只选择下面两项进行安装:

(1) Microsoft Windows Core SDK/Build Environment/Build Environment (x86
32-bit)

(2) Microsoft Data Access Services (MDAC)/BuildEnvironment/Build
Environment (x86 32-bit)

选择第二项的目的是因为这一项中包含
odbc32.lib,如果你不需要则可以不选,但本文的后面部分,特别是编译
wxWidgets
时,都是按照选择了这一项来进行的(USE_ODBC=1)。另外,如果你的系统结构是
AMD64 或 IA64 则应该选择相应的 Build Environment。

下面开始安装 wxWidgets,在 SourceForge.net 下载了
wxWidgets-2.6.2 的 zip
包。解压到某一目录(后文中此目录用 %WXPATH%
代替)。

首先,编译 wxWidgets。在 Visual Studio 命令行环境下进入
%WXPATH%/build/msw 目录。这里面有一系列由 Bakefile 生成的
makefile,根据其对应的编译器不同有着不同的后缀,并且每种编译器也对应着一个
config 文件。因为我们用的是 VC,所以我们关注的是
makefile.vc 和 config.vc。

用文本编辑器打开 config.vc 文件。这是关于如何编译
wxWidgets 的设置。这里解释一些重要的选项。

SHARE: 编译产生的 wxWidgets 库是静态库还是动态库
UNICODE: 是否支持 unicode utf-8
BUILD: 编译产生的库是用于调试的还是最终发行的

UNICODE、BUILD
选项可产生四种组合,产生四套不同的库,若再和
SHARE 组合则可产生八套不同的库。

MONOLITHIC: 是否只产生一个单一的库文件。

USE_GUI: 是否编译图形界面库
USE_HTML: 是否编译 HTML 库
USE_XRC: 是否编译 XRC 库
USE_OPENGL: 是否编译 OPENGL 库
USE_ODBC: 是否编译 ODBC 库
USE_QA: 是否编译 QA 库

RUNTIME_LIBS: 使用动态还是静态的 C++ 运行库,对应 VC
编译器的 /MD 和 /MT 参数

我一共编译了四套静态库,即用 UNICODE 和 BUILD
两个选项产生的四种组合:
(1) UNICODE = 0 BUILD = debug
(2) UNICODE = 0 BUILD = release
(3) UNICODE = 1 BUILD = debug
(4) UNICODE = 1 BUILD = release

除了 UNICODE 和 BUILD 选项之外,其它选项如下:

SHARE = 0
MONOLITHIC = 0
USE_GUI = 1
USE_HTML = 1
USE_XRC = 1
USE_OPENGL = 1
USE_ODBC = 1
USE_QA = 1
RUNTIME_LIBS = static

按照上面修改了 config.vc 后,分别四次执行

nmake -f makefile.vc (稍等一下,要运行好一会儿的)

每次执行之前,将 UNICODE 和 BUILD
改为前文中四种组合的其中一种。

编译产生的临时文件分别在 msw mswd mswu mswud
四个子目录中,这些是为了在调整设置后重新编译时节约时间的,若不想重新编译可以把它们删掉。而最终产生的
lib 文件已经被拷贝到了 %WXPATH%/lib/vc_lib
下。其中每套库还有一个配置文件,分别在
%WXPATH%/lib/vc_lib 下的 msw mswd mswu mswud
四个目录中,这些配置文件里包含许多可以调整的预编译选项,具体可以参考相关文档。

到此为止,wxWidgets
库已经编译好了。那么怎样设置一个使用 wxWidgets 的
Visual Studio 工程呢。启动 Visual C++ 2005 Express,打开
Tools/Option 菜单。这里是 IDE 的一些全局选项。看看
Projects and Solutions/VC++ Directories 里面是否包括 Platform SDK
的 include 和 lib
目录,如果没有的话加上。然后新建一个工程,在工程设置里面修改编译器和连接器的设置如下(注意把
%WXPATH% 换成真实的 wxWidgets 解压目录):

[Debug]

Configuration Properties/C/C++/General/Additional Include Directories:
%WXPATH%/include;%WXPATH%/include/msvc

Configuration Properties/C/C++/Preprocessor/Preprocessor Definitions:
WIN32;__WXMSW__;_WINDOWS;_DEBUG;__WXDEBUG__

Configuration Properties/C/C++/Code Generation/Runtime Library:
Multi-threaded Debug(/MTd)

Configuration Properties/Linker/General/Additional Library Directories:
%WXPATH%/lib/vc_lib

Configuration Properties/Linker/Input/Additional Dependencies:
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 odbc32.lib opengl32.lib
(wxWidgets 的库好像会在预编译里自动被加上)

Configuration Properties/Linker/Debugging/Generate Debug Info:
Yes(/DEBUG)

[Release]

Configuration Properties/C/C++/General/Additional Include Directories:
%WXPATH%/include;%WXPATH%/include/msvc

Configuration Properties/C/C++/Preprocessor/Preprocessor Definitions:
WIN32;__WXMSW__;_WINDOWS

Configuration Properties/C/C++/Code Generation/Runtime Library:
Multi-threaded Debug(/MT)

Configuration Properties/Linker/General/Additional Library Directories:
%WXPATH%/lib/vc_lib

Configuration Properties/Linker/Input/Additional Dependencies:
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 odbc32.lib opengl32.lib

这样,你的工程里应该可以正常编译使用了 wxWidgets
的程序了。

如果你想工程里使用 XP
主题外观的话,需要在自己建立一个 .rc
文件,并在其中引用 %WXPATH%/include/wx/msw/wx.rc
文件。如果这样做不行的话可以在 Configuration
Properties/Linker/Manifest File/Additional Manifest Dependencies
里手动加上 %WXPATH%/include/wx/msw/wx.manifest,或者在
Additional Include Directories 里加入 %WXPATH%/include/wx/msw
(因为 wx.rc 里对 wx.manifest 的引用好像没有加路径)。

基本上就是这么多了,这篇文章主要写给初用 wxWidgets
的人看,免得绕弯路。如果有什么问题可以和我联系。也可以上
http://www.solidsteel.nl/users/wxwidgets/ 提问。

这篇关于[转载] wxWidgets-2.6.2 + Microsoft Visual C++ 2005 Express + Platform SDK 安装使用手记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/607922

相关文章

Zookeeper安装和配置说明

一、Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式。 ■ 单机模式:Zookeeper只运行在一台服务器上,适合测试环境; ■ 伪集群模式:就是在一台物理机上运行多个Zookeeper 实例; ■ 集群模式:Zookeeper运行于一个集群上,适合生产环境,这个计算机集群被称为一个“集合体”(ensemble) Zookeeper通过复制来实现

CentOS7安装配置mysql5.7 tar免安装版

一、CentOS7.4系统自带mariadb # 查看系统自带的Mariadb[root@localhost~]# rpm -qa|grep mariadbmariadb-libs-5.5.44-2.el7.centos.x86_64# 卸载系统自带的Mariadb[root@localhost ~]# rpm -e --nodeps mariadb-libs-5.5.44-2.el7

Centos7安装Mongodb4

1、下载源码包 curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.2.1.tgz 2、解压 放到 /usr/local/ 目录下 tar -zxvf mongodb-linux-x86_64-rhel70-4.2.1.tgzmv mongodb-linux-x86_64-rhel70-4.2.1/

【C++ Primer Plus习题】13.4

大家好,这里是国中之林! ❥前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。有兴趣的可以点点进去看看← 问题: 解答: main.cpp #include <iostream>#include "port.h"int main() {Port p1;Port p2("Abc", "Bcc", 30);std::cout <<

C++包装器

包装器 在 C++ 中,“包装器”通常指的是一种设计模式或编程技巧,用于封装其他代码或对象,使其更易于使用、管理或扩展。包装器的概念在编程中非常普遍,可以用于函数、类、库等多个方面。下面是几个常见的 “包装器” 类型: 1. 函数包装器 函数包装器用于封装一个或多个函数,使其接口更统一或更便于调用。例如,std::function 是一个通用的函数包装器,它可以存储任意可调用对象(函数、函数

C++11第三弹:lambda表达式 | 新的类功能 | 模板的可变参数

🌈个人主页: 南桥几晴秋 🌈C++专栏: 南桥谈C++ 🌈C语言专栏: C语言学习系列 🌈Linux学习专栏: 南桥谈Linux 🌈数据结构学习专栏: 数据结构杂谈 🌈数据库学习专栏: 南桥谈MySQL 🌈Qt学习专栏: 南桥谈Qt 🌈菜鸡代码练习: 练习随想记录 🌈git学习: 南桥谈Git 🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈�

Centos7安装JDK1.8保姆版

工欲善其事,必先利其器。这句话同样适用于学习Java编程。在开始Java的学习旅程之前,我们必须首先配置好适合的开发环境。 通过事先准备好这些工具和配置,我们可以避免在学习过程中遇到因环境问题导致的代码异常或错误。一个稳定、高效的开发环境能够让我们更加专注于代码的学习和编写,提升学习效率,减少不必要的困扰和挫折感。因此,在学习Java之初,投入一些时间和精力来配置好开发环境是非常值得的。这将为我

【C++】_list常用方法解析及模拟实现

相信自己的力量,只要对自己始终保持信心,尽自己最大努力去完成任何事,就算事情最终结果是失败了,努力了也不留遗憾。💓💓💓 目录   ✨说在前面 🍋知识点一:什么是list? •🌰1.list的定义 •🌰2.list的基本特性 •🌰3.常用接口介绍 🍋知识点二:list常用接口 •🌰1.默认成员函数 🔥构造函数(⭐) 🔥析构函数 •🌰2.list对象

06 C++Lambda表达式

lambda表达式的定义 没有显式模版形参的lambda表达式 [捕获] 前属性 (形参列表) 说明符 异常 后属性 尾随类型 约束 {函数体} 有显式模版形参的lambda表达式 [捕获] <模版形参> 模版约束 前属性 (形参列表) 说明符 异常 后属性 尾随类型 约束 {函数体} 含义 捕获:包含零个或者多个捕获符的逗号分隔列表 模板形参:用于泛型lambda提供个模板形参的名

安装nodejs环境

本文介绍了如何通过nvm(NodeVersionManager)安装和管理Node.js及npm的不同版本,包括下载安装脚本、检查版本并安装特定版本的方法。 1、安装nvm curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash 2、查看nvm版本 nvm --version 3、安装