一直在寻找一个方便使用的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=1SHARED = 0 表示 静态编译;SHARED =1 表示动态编译

USE_ODBC=1 是默认的(可设置为0)    :使用ODBC数据库

USE_GL = 1 是默认的(可设置为0)       :使用OpenGL库

详细编译选项见

如果采用动态编译,Defined symbols(预定义?)中必须定义WXUSINGDLL,如果为Debug版本还得添加MinGW的运行时库mingwm10.dll。

上面提到的:如果编译Debug版本,需要定义__WXDEBUG__;Release版本则不需要。

下图是:上面的代码,在vista 下动态编译的Debug 版本

(zhuliangxiong)

eclipse html自动编译器,Eclipse+WxWidgets开发环境搭建相关推荐

  1. window下eclipse +cdt+cygwin做C,C++开发环境搭建 (转自:http://blog.csdn.net/thinkandchange/article/details/7935)

     1.Cygwin下载,配置,参看本人ndk开发. 给cygwin配置环境变量; 2.eclipse for java,javaee的话再安装cdt插件,eclipse for c,c++不需要. ...

  2. 【技术文档】Jeecg-P3开发环境搭建入门(java插件开发框架)

    一.项目工程说明 jeecg-p3-web       | 启动主项目 jeecg-p3-biz-demo | 插件项目     注意:项目为maven工程,采用maven方式导入eclipse等ID ...

  3. 基于ARCGIS二次开发可视化开发环境搭建(JAVA)

    这两天为了搭建这么一个基于java的ArcGIS二次开发环境可着实花了一番心血.在网上搜索各种资料,大部分都是基于C#的,关于JAVA的很少,而且很杂乱,没有一个完整的.详细的.适合新手的这么一个教程 ...

  4. QGC4.1.2二次开发(1)--Qt5.12.6 andorid开发环境搭建

    开发环境介绍: QGC版本: 4.1.2 Qt版本: 5.12.6(QGC要求) windows平台开发:vs2017 andorid平台: JDK Java SE 8u281        ando ...

  5. Android(一)——Eclipse+ADT 和 Android Studio 开发环境搭建及介绍

    文章目录 1. 前言介绍 1.1 JDK安装与配置 1.2 IDE开发APP流程 1.3 相关术语的解析 1.4 ADB相关指令 1.5 APP程序打包与安装流程 2. 开发环境搭建 2.1 Ecli ...

  6. day01--java基础编程:计算机基础知识 ,java语言概述,java开发环境搭建,eclipse概述,创建简单java项目,JDK JRE JVM的关系,java开发中的命名规范,编程风格

    1 Day01–Java开发环境+HelloWorld 1.1 计算机基础知识 资料下载网址:刘沛霞 18600949004 code.tarena.com.cn tarenacode code_20 ...

  7. eclipse 关闭时progress information弹框_Spring开发环境搭建(Eclipse)

    开发环境搭建,主要包含2部分: Java安装 Eclipse安装 为易于学习,我们只安装这2个部分,对于一般开发学习也足够了.如果你有其他要安装的,酌情添加. Java安装 我们使用Java8: 下载 ...

  8. Eclipse开发环境搭建

    锁定老帖子 主题:Eclipse开发环境搭建 精华帖 (0) :: 良好帖 (3) :: 新手帖 (13) :: 隐藏帖 (0) 作者 正文 hanqunfeng 等级: 性别: 文章: 57 积分: ...

  9. 2019-安卓开发环境搭建-经验分享-Eclipse(主要内容)+Android Studio

    2019-安卓开发环境搭建-经验分享-Eclipse(主要内容)+Android Studio 0. 引言 1. 常见问题 2. 配置安卓开发环境 2.1 准备 JDK 环境 2.1.1 下载 JDK ...

最新文章

  1. 【Linux】关于ffmpeg的一些常见用法
  2. 15合并两个排序的链表
  3. Spring Security——SessionManagement中InvalidSessionStrategy自定义——简单跳过Fitter过滤刷新Session
  4. 【Zabbix】yum方式安装zabbix
  5. Opportunity creation case in Firebug
  6. Linux服务器的架设 (DHCP,NIS,SAMBA,FTP,DNS)
  7. CSS百分比实现高度占位自适应
  8. 计算机网络的概述发展填空题,计算机网络安全概述填空题.doc
  9. 使用qt多线程的一个简单方法
  10. 基础搜索(kuangbin专题)
  11. win7计算机系统还原,win7怎么系统还原 还原步骤详解
  12. TOTP动态密码认证功能,让天下无贼!
  13. excel窗体最大化最小化_最小化Excel 2007功能区
  14. 未能加载文件或程序集 System Drawing Version 4 0 0 0 Culture neutral
  15. 捷讯fw300r虚拟服务器口号,迅捷FW300R无线路由器WDS无线桥接设置方法
  16. k-means算法及python实现
  17. html编辑器渗透,渗透测试之编辑器漏洞与旁注、跨目录、跨库、CDN绕过
  18. lynda怎样免费看_您可能可以从本地图书馆获得免费的Lynda.com访问
  19. 酒店微信直播引流获客方案
  20. bat 自动执行 SVN 命令

热门文章

  1. python获取类的类属性_Python中如何获取类属性的列表
  2. nodejs原始连接mysql
  3. Android BLE新手进入
  4. idea+SpringBoot+Mybatis+Mysql环境搭建
  5. 数学之贝叶斯分类的理解
  6. 微信视频号Android面试经验,如何通过视频面试拿下offer?我们来给你支招啦!
  7. android动态设置全屏,Android开发之全屏与非全屏的切换设置方法小结
  8. OpenShift - 扩展收缩应用部署规模
  9. .NET Core 3.0中的Cookie身份验证
  10. 使用SQL Agent和SignalR的每日提醒