一直在寻找一个方便使用的C++GUI库。今天终于把WxWidgets搞定。
大致的步骤是四步:
第一步,Eclipse及CDT的安装
第二步,MinGW及编译器的安装配置
第三步,wxWidget的下载及编译
第四步,Eclipse下有关wxWidget的配置
搞定wxWidget的配置、开始编写像样的windows程序
----Richard Lee 回味
看了网上的绝大部分文章,多半解决不了什么问题,还有可能误入歧途,浪费更多的时间在前期这准备工作上。
所以,把这些配置的详细步骤写出来,希望能为后来者指点迷津,切莫再花时间再环境的搭建上了。
大致的步骤是四步:
第一步,Eclipse及CDT的安装
第二步,MinGW及编译器的安装配置
第三步,wxWidget的下载及编译
第四步,Eclipse下有关wxWidget的配置
经过这四步相信你就应该可以正常调试你的窗口程序了。
ok,我们开始。
第一步 Eclipse及CDT的安装
这步其实没啥说的,是最简单的一步,用过eclipse及安装过插件的人都应该很快搞定。
下载Eclipse最新版本,到我写这篇文章时应该是3.2版,由 http://www.eclipse.org 下载,当然首先你要先下载JDK并正确安装和注册环境变量path(将你的jre的bin目录路径cut到path里),再启动Eclipse 应该看到正常启动画面。
再到eclipse的网站上找到CDT,下载它,当然你应该选择最近的版本下载。
下载后,进行解压,并直接将解压后得到的诸多文件及文件夹 Copy到Eclipse原目录下。重新启动Eclipse,这时再新建工程,你应该能见到 C/C++工程这项了。
到这里,你的CDT算是安装成功了。
第二步 MinGW及编译器的安装配置
这部分主要是MinGW的下载及安装配置。
由于单独的Eclipse + CDT 是不能完成C++工程开发的,因为至少还缺少编译器及基础类库,这里我们选择MinGW工具,你需要到 http://www.MinGW.org 上去下载最新版本的MinGW。
到目前为止,最新版本是5.0.2版,你从它网站上直接download下来的应该是一个100多k的下载端软件,还需要继续下载全部内容,运行该下载文件后,按要求逐步推进,如果你是下载压缩包,即只下载需要的部分,那么你选择下载以下这几部分
- gcc-g++-3.4.2-20040916-1.tar.gz
- gcc-core-3.4.2-20040916-1.tar.gz
- mingw32-make-3.80.0-3.tar.gz
- mingw-runtime-3.9.tar.gz
- mingw32-make-3.80.0-3.tar.gz
- binutils-2.15.91-20040904-1.tar.gz
- w32api-3.6.tar.gz
下 载完成后,首先将他们拷贝到同一目录下,并将它们解压在同一目录下面(例如我的mingw安装目录是c:\mingw,那么需要将这7个压缩文件全部直接 在c:\mingw解压)。然后设置环境变量确保在PATH环境变量中包含"d:\mingw\bin",最后可以打开DOS控制台输入gcc来验证环境 变量是否设置正确。如果你的DOS控制台显示“no input file”等相关信息,那么你这一步也算完成了。
第三步,wxWidget的下载及编译
wxWidget由 http://www.wxWidgets.org 下载并安装,目录自选。
安装好后,直接进入你wxWidgets的安装目录 (举例:c:\wxWidgets-2.8.0\build\msw)中,在这里执行命令
mingw32-make -f makefile.gcc BUILD=release SHARED=0 UNICODE=1 USE_ODBC=1
通过makefile.gcc 这个文件将整个项目编译好,你会等很久大约半个多小时,编译后目录涨到800多M,因为一部分是.o的中间文件,
可以删除。
编译后你会在安装目录的(c:\wxWidgets-2.8.0\lib\gcc_lib)下看到一堆扩展名为 .a 的Archive文件(windows下的库文件为.lib
linux下为 .a)和几个目录,类似mswu,mswud。
第三步完成。
第四步,Eclipse下有关wxWidgets的配置
首先启动你的Eclipse并建立一个Managed C++ Project。创建完成后右键该项目并选择"Properties"属性对话框在其中选择“C/C++ Build"选项。
在C/C++Build选项界面中,选择“Configuration Settings”的"Tool Settings“。
在Tool Settings中选择"GCC C++ Compiler"->"Preprocessor",
在Defined symbols列表中加入:__WXMSW__ (注意,两侧都是双下划线), __WXDEBUG__ 和 _UNICODE (此处是单下划线,
因为你的wxWidgets是用unicode编码编译的,所以此处一定要设置该宏,不然在编译时会收到大量"undefined reference")。
接下来你需要选择Directories项并添加include及lib目录,在这里你需要添加
"C:\wxWidgets-2.8.0\lib\gcc_lib\mswud"
"C:\wxWidgets-2.8.0\lib\gcc_lib\mswu"
"C:\wxWidgets-2.8.0\include"
"C:\wxWidgets-2.8.0\contrib\include"
这四个目录进Directories。
接下来在下面的 Miscellaneous 选项中的Other Flags中输入以下这句
-c -Wundef -Wno-ctor-dtor-privacy -fno-strict-aliasing
接下来点选到 "GCC C++ Linker" 部分。在这部分,首先选择"Libraries"并在右侧的Libraries栏中按顺序键入以下库名:
wxmsw28ud_xrc,wxmsw28ud_richtext, wxbase28ud_net, wxmsw28ud_dbgrid, wxbase28ud_odbc,wxmsw28ud_media, wxmsw28ud_aui, wxmsw28ud_html, wxmsw28ud_adv,wxbase28ud_xml, wxmsw28ud_core, wxbase28ud, wxtiffd, wxjpegd, wxpngd,wxzlibd, wxregexud, wxexpatd, kernel32, user32, gdi32, comdlg32,winspool, winmm, shell32, comctl32, ole32, oleaut32, uuid, rpcrt4,advapi32, wsock32, odbc32
库名全部加入后在下面一栏的"Library search path (-L)"中加入以下目录
"C:/wxWidgets-2.8.0/lib/gcc_lib"
"C:/wxWidgets-2.8.0/lib"
添加完成后,选择该部分中的"Miscellaneous"项,并在"Linker flags"中键入
-Wl,--subsystem,windows -mwindows
此时,点击应用。
再切换到"Build Settings"标签页,勾掉"Build Command"中的,"Use default command"前的勾儿,并将命令 make 改为
mingw32-make -fmakefile
最终,点击"OK"使设置生效。
到这里,你可以把wxwidgets中的samples拿来试一试了,把代码Copy进你的工程,编译运行一下,看看结果。
我想,你应该成功了。。。。
下面是第一个WxWidgets程序的代码:
#include "wx/wx.h"
using namespace std;
class MyApp:public wxApp
{
public:
vrtual bool OnInit();
};
class MyFrame:public wxFrame
{
public:
MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size) ;
void OnQuit(wxCommandEvent& event);
void OnAbout(wxCommandEvent& event);
DECLARE_EVENT_TABLE()
};
enum
{
ID_Quit = 1,
ID_About,
};
BEGIN_EVENT_TABLE(MyFrame, wxFrame)
EVT_MENU(ID_Quit, MyFrame::OnQuit)
EVT_MENU(ID_About, MyFrame::OnAbout)
END_EVENT_TABLE()
IMPLEMENT_APP(MyApp)
bool MyApp::OnInit()
{
MyFrame *frame = new MyFrame( wxT("Hello World"), wxPoint(50,50), wxSize(450,340) ) ;
frame->Show(TRUE);
SetTopWindow(frame);
return TRUE;
}
MyFrame::MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size)
: wxFrame((wxFrame *)NULL, -1, title, pos, size)
{
wxMenu *menuFile = new wxMenu;
menuFile->Append( ID_About, wxT("&About...") ) ;
menuFile->AppendSeparator();
menuFile->Append( ID_Quit, wxT("E&xit") ) ;
wxMenuBar *menuBar = new wxMenuBar;
menuBar->Append( menuFile, wxT("&File") ) ;
SetMenuBar( menuBar ) ;
CreateStatusBar();
SetStatusText( wxT("Welcome to wxWindows!") ) ;
}
void MyFrame::OnQuit(wxCommandEvent& WXUNUSED(event))
{
Close(TRUE);
}
void MyFrame::OnAbout(wxCommandEvent& WXUNUSED(event))
{
wxMessageBox(wxT("This is a wxWindows Hello world sample"),
wxT("About Hello World"), wxOK | wxICON_INFORMATION, this) ;
}
注: 编译wxWigets时候 mingw32-make -f makefile.gcc BUILD=release SHARED=0 UNICODE=1 USE_ODBC=1
SHARED = 0 表示 静态编译;SHARED =1 表示动态编译
USE_ODBC=1 是默认的(可设置为0) :使用ODBC数据库
USE_GL = 1 是默认的(可设置为0) :使用OpenGL库
详细编译选项见<wx/setup.h>
如果采用动态编译,Defined symbols(
预定义?)
中必须定义WXUSINGDLL,如果为Debug版本还得添加MinGW的运行时库mingwm10.dll。
上面提到的:如果编译Debug版本,需要定义__WXDEBUG__;Release版本则不需要。
下图是:上面的代码,在vista 下动态编译的Debug 版本
相关推荐
wxWidgets跨平台设计类库用C++写的啊. 还有使用wxWidgets的总体框架文档. 编译并安装的文档 搭建Eclipse+CDT+MinGW+wxWidgets开发环境 <br>
二、开发环境搭建 1. 安装Linux发行版:选择一款适合开发的Linux发行版,如Ubuntu、Fedora或Debian,它们提供了丰富的开发工具和软件库。 2. IDE与编辑器:安装集成开发环境(IDE)如Code::Blocks、Eclipse或Visual ...
总之,"mingw-w64-install.zip" 是一个用于在 Windows 10 系统上搭建 MingW-W64 开发环境的压缩包,内含 GCC 编译器和安装程序,为 C/C++ 开发者提供了便捷的开发工具链。通过这个压缩包,用户可以快速开始他们的...
金煤婚恋 92版本, 去授权,仅供学习,商业使用请支持正版
传统办法管理信息首先需要花费的时间比较多,其次数据出错率比较高,而且对错误的数据进行更改也比较困难,最后,检索数据费事费力。因此,在计算机上安装小区团购管理软件来发挥其高效地信息处理的作用,可以规范信息管理流程,让管理工作可以系统化和程序化,同时,小区团购管理的有效运用可以帮助管理人员准确快速地处理信息。 小区团购管理在对开发工具的选择上也很慎重,为了便于开发实现,选择的开发工具为Eclipse,选择的数据库工具为Mysql。以此搭建开发环境实现小区团购管理的功能。其中管理员管理用户,新闻公告。 小区团购管理是一款运用软件开发技术设计实现的应用系统,在信息处理上可以达到快速的目的,不管是针对数据添加,数据维护和统计,以及数据查询等处理要求,小区团购管理都可以轻松应对。 关键词:小区团购管理;SSM框架,系统分析,数据库设计
数据集是一个关于初创企业失败案例的详细数据集,由Daglox Kankwanda于2025年2月27日发布在Kaggle上。该数据集包含483家初创企业的失败信息,数据来源于CB Insights的“初创企业失败后分析”汇编。 数据集涵盖了多个行业的初创企业,提供了丰富的字段信息,包括公司名称、行业领域、失败原因、资金筹集情况、运营时长、地理位置等。这些字段为研究者提供了多维度的视角,可以深入分析初创企业失败的共性和差异。 通过该数据集,研究者可以探索不同行业初创企业的失败模式,例如,某些行业可能因市场竞争激烈而失败,而另一些行业可能因技术瓶颈或资金不足而终止。此外,数据集还提供了失败原因的详细分类,如产品市场契合度不足、团队问题、资金链断裂等,为创业者和投资者提供了宝贵的经验教训。 该数据集不仅适用于商业分析和研究,还可以用于机器学习模型的训练,例如预测初创企业的成功概率或识别潜在的失败风险因素。对于希望深入了解创业生态和风险的研究者、创业者以及投资者来说,“Startup Failures”数据集是一个极具价值的资源。
Swift-Button封装
内容概要:本文档详尽介绍了AUTOSAR TcpIp模块的功能与设计,作为AUTOSAR通信栈的核心部分,它提供了完整的TCP/IP协议栈解决方案,包括TCP和UDP在内的多种协议以及IPv4和IPv6的支持。文档涵盖模块的总体架构设计,详细描绘其状态管理和数据传输机制,并阐述与其它相关模块之间的交互协作。同时,对初始化流程、Socket操作以及数据发送接收的具体过程进行了逐步拆解与解释。还介绍了针对可能出现故障时的错误处理措施。 适合人群:汽车电子工程师、嵌入式系统开发者、研究AUTOSAR规范及其网络协议栈实现的专业人士。 使用场景及目标:本文件主要用于深入了解和支持汽车行业内基于AUTOSAR平台的网络协议部署情况;为设计符合工业标准的车载信息系统打下坚实的基础;对于提升产品性能和安全性具有重要的指导价值。 其他说明:作者提供了一个详细的参考资料链接,感兴趣的读者可以进一步访问获取更多信息。此外,在实际工作中遇到的问题也可以参考文中所提到的各种处理方法来进行有效的排查和解决。
Thinkpad T480s的BIOS升级软件 【版本n22uj39w】
特易通国产对讲机TYT-T3 v1.0中英写频软件
Swift-ViewController+SP
Swift-PDFImage
VMware-Workstation-Full-17.6.2-24409262.x86_64.rar Linux版本 Vmware是一款领先的虚拟化软件,为用户提供强大的虚拟机平台。通过使用Vmware,用户可以在一台物理计算机上同时运行多个虚拟操作系统,实现资源的高效利用和隔离。它提供了灵活的配置选项、快速的性能和可靠的安全性,适用于个人用户、企业和数据中心。无论是开发测试、应用部署还是服务器管理,Vmware都是一个强大而可靠的工具,为用户提供了简单且可扩展的虚拟化解决方案。
内容概要:本文首先介绍了智能座舱的概念及其组成结构,详细解释了硬件、软件及交互三个部分的功能,并阐述了智能座舱从电子座舱到智能移动空间的不同发展阶段,重点讨论了语音交互和AR-HUD两大核心技术的发展路径及未来发展方向。接下来介绍车载基础软件的重要性及其分类,强调其在智能汽车发展中扮演的角色。文中指出,在软件定义汽车的趋势下,车载基础软件成为衔接硬件和应用软件的核心枢纽,特别是在软硬件分层解耦背景下,其作用日益凸显。最后探讨了当前国内车载基础软件行业的竞争情况与发展趋势。文章还分析了行业发展面临的高技术壁垒、高转换成本和高退出壁垒等问题,指出了车载基础软件对未来汽车产业变革的意义。 适用人群:从事汽车电子产品设计的研发人员、相关专业在校学生以及对汽车行业新技术感兴趣的爱好者。 使用场景及目标:该文档适合用作学习资料或研究参考资料,旨在帮助读者深入了解智能座舱的构成要素和技术演进,掌握车载基础软件的架构特点,洞悉该领域的市场动向。 其他说明:文中部分内容带有作者个人感悟和思考,但这并不影响其专业价值,反而增加了人文气息,有助于激发工程师的人文关怀和社会责任感。
JAVA面试最新最有效的全网顶级资料,免费提供,码字不易,你的关注就是博主最大的动力。
Swift-String-Extension
社会发展日新月异,用计算机应用实现数据管理功能已经算是很完善的了,但是随着移动互联网的到来,处理信息不再受制于地理位置的限制,处理信息及时高效,备受人们的喜爱。本次开发一套物流管理系统有管理员和用户两个角色。管理员功能有个人中心,用户管理,车辆信息管理,公告信息管理,司机管理,物流信息管理,运单信息管理,车辆类型管理,车辆状态管理,公告类型管理,物流状态管理,运单状态管理。用户可以注册登录,查看公告信息,查看物流信息,可以添加运单信息。物流管理系统服务端用Java开发,用Spring Boot框架开发的网站后台,数据库用到了MySQL数据库作为数据的存储。这样就让用户用着方便快捷,都通过同一个后台进行业务处理,而后台又可以根据并发量做好部署,用硬件和软件进行协作,满足于数据的交互式处理,让用户的数据存储更安全,得到数据更方便。 关键字:物流管理系统;Spring Boot框架;Java;MySQL
数据结构学习
KaihongOS_System_Component 4.1.2.17(RT00E000C000M68A).part2.rar 请勿下载,请联系对应销售获取。
数据结构学习