`

Eclipse+WxWidgets开发环境搭配

阅读更多
http://www.cppblog.com/zyzx/archive/2009/04/27/81226.html


大致的步骤是四步:
第一步,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版本则不需要。
分享到:
评论

相关推荐

    Eclipse Juno+mingw+wxWidgets

    Eclipse Juno+mingw+wxWidgets是一种流行的开发环境配置,旨在提高开发效率。下面将详细介绍该配置的步骤和知识点。 安装Eclipse Eclipse是著名的集成开发环境(IDE),支持多种编程语言,包括C/C++。首先,需要...

    Codeblocks+wxWidgets安装及编译.doc

    Codeblocks+wxWidgets安装及编译

    配置好的CodeBlocks20.03+wxWidgets3.14

    配置完成后,你将拥有一个强大的环境,能够轻松地开发使用wxWidgets的C++图形用户界面程序。CodeBlocks的调试功能和代码高亮等特性将极大提升你的开发效率。记得在开发过程中经常保存和测试,以确保代码的正确性。...

    Windows上配置CodeBlocks + wxWidgets

    wxWidgets 是一个跨平台的 GUI 库,提供了丰富的 API 和控件,非常适合开发桌面应用程序。 在安装 MinGW/GCC 编译器之前,我们需要确保包含编译器可执行文件的目录(一般是 C:\MinGW\bin)在 Windows 的 PATH 环境...

    【CB+wxWidgets】俄罗斯方块

    CB+wxWidgets写的简易俄罗斯方块,目前分数计数和难度计数还未完善

    【CB+wxWidgets】贪吃蛇

    CB+wxWidgets编的简易贪吃蛇,未引用外部素材,用的wx自带的绘图功能

    搭建跨平台编程环境Code::Blocks+wxWidgets

    Code::Blocks是一款开源的、免费的集成开发环境(IDE),支持多种编译器,包括MinGW,而wxWidgets则是一个用于构建本地GUI应用程序的跨平台库。 在Windows平台上搭建Code::Blocks+wxWidgets环境,首先需要访问Code::...

    VS2008+wxWidgets-2.9.4配置向导(修正版)

    VS2008+wxWidgets-2.9.4配置向导(修正版), 内附文件: 1、VS2008安装wxWidgets-2.9.4详细说明文档 2、向导文件修正版,可以用该向导直接生成可编译的wx应用程序

    VS2013搭建wxWidgets开发环境.7z

    标题"VS2013搭建wxWidgets开发环境.7z"表明这个压缩包文件包含了关于如何在Visual Studio 2013中设置和配置wxWidgets开发环境的资源。wxWidgets是一个跨平台的C++库,用于创建原生GUI应用程序,可以在多个操作系统上...

    【CB+wxWidgets】简易五子棋(不含人机)

    CB+wxWidgets制作的简易五子棋,用的是Widgets自带的绘制工具,没有引用素材

    学生信息管理系统,Ubuntu下Codeblocks+wxWidgets编程

    本项目采用Ubuntu操作系统,利用Codeblocks作为集成开发环境(IDE),并结合wxWidgets库进行图形用户界面(GUI)的开发。接下来,我们将深入探讨这个系统背后的编程知识和技能。 首先,Ubuntu是一个基于Linux的开源...

    本人写的makefile for mingw + wxWidgets

    我写的makefile for mingw + wxWidgets, makefile可作为通用模板,编译C++ wxWidgets GUI 库。另外带一个小例子,用户改makefile的头部就可以完成,资源文件链接,debug, release版本编译,shared 库 非shared 库...

    VS2019+wxWidgets-3.1.4的配置的模板工程(wxProject.zip)

    总结来说,使用VS2019和wxWidgets 3.1.4创建跨平台的GUI应用,需要正确安装和配置环境,理解wxWidgets的基本结构和编程模式,以及掌握如何利用VS2019的项目和属性设置来管理依赖关系。通过不断实践和学习,您可以...

    Windows上配置Code::Blocks + wxWidgets

    ### Windows上配置Code::Blocks与wxWidgets:搭建高效跨平台开发环境 在探索Windows平台下进行高效的跨平台软件开发时,结合使用Code::Blocks与wxWidgets成为了一个极具吸引力的选择。Code::Blocks是一款功能强大且...

    【CB+wxWidgets】俄罗斯方块-KanagiTetris-windows(附源代码和二进制文件)

    1. **CodeBlocks**: CodeBlocks是一款开源、免费的C++集成开发环境,适用于多种操作系统,包括Windows、Linux和Mac OS。它提供了一套完整的开发工具,包括代码编辑器、编译器、调试器等,适合初学者和专业开发者使用...

    (ubuntu+codeblock+wxwidgets+v4l2)摄像头捕获并拍照

    程序可能会有bug,如果不能直接执行,请先找找是不是自己原因,或者给我发消息(不...另外这个是用wxwidgets写得,不知道能不能跨平台使用,有兴趣的可以下在windows平台编译一下,只是头文件什么的肯定是要更换的。

    使用wxWidgets跨平台设计

    wxWidgets跨平台设计类库用C++写的啊. 还有使用wxWidgets的总体框架文档. 编译并安装的文档 搭建Eclipse+CDT+MinGW+wxWidgets开发环境 &lt;br&gt;

    wxWidgets安装+教程

    wxWidgets安装+教程wxWidgets安装+教程wxWidgets安装+教程wxWidgets安装+教程wxWidgets安装+教程wxWidgets安装+教程wxWidgets安装+教程wxWidgets安装+教程wxWidgets安装+教程

    codeblocks_17.12.tar.xz+wxWidgets-3.0.4.tar.bz2源码.zip

    CodeBlocks是一款开源、免费的C/C++集成开发环境(IDE),尤其受到初学者和专业开发者的欢迎。这个压缩包包含了CodeBlocks 17.12版本的源代码以及wxWidgets 3.0.4库的源码。让我们深入探讨这两个组件及其在Linux环境...

    CodeBlocks12.11+wxWidgets3.0 wizard patch

    新推出的wxWidgets3.0.0可以运行CodeBlocks12.11的向导文件补丁,欢迎试用。直接覆盖CB安装目录下的CodeBlocks\share\CodeBlocks\templates\wizard\wxwidgets文件夹中即可

Global site tag (gtag.js) - Google Analytics