编译安装wxWidgets

环境:windows xp,eclispe—cpp

 

<script type="text/javascript"> </script>

wxWidgets 压缩包解压到你要安装的目标目录( C:/wxWidgets-2.8.0 )。

 

建立下列系统环境变量:

       WXWIN   C:/wxWidgets-2.8.0

 

打开一个命令行窗口,进入 wxWidgets 目录中进行编译安装。如下图:

       mingw—console

 

具体的编译选项可参考 wxWidgets 提供的 install.txt 文件。

 

这个编译可能需要一段时间。在编译完成后,要将 C:/wxWidgets-2.8.10/lib/gcc_lib/mswud/wx 复制到 C:/wxWidgets-2.8.4/include/wx

 

Eclipse 中新建一个项目,选择项目类型为 Managed Make C++ Project ,项目名为 HelloWorld ,其余全部可以保持缺省设置。

 

选择 c/c++ Build -> Build Settings ,设置 Expand Build Environment Macros, 如下图:

选择 c/c++ Build ->Tool Settings,

 eclipse-property

GCC C++ Compiler -> Preprocessor 中添加一个 Symbol __WXMSW__

GCC C++ Compiler-> Directories 中添加 Include 路径: "${WXWIN}/include [c1]   " "${MINGW}/include [c2]   "

GCC C++ Compiler->Miscellaneous 修改 Other flags -c -Wundef -Wno-ctor-dtor-privacy -fno-strict-aliasing -mthreads –mwindows [c3]  

 

GCC C++ Linker -> Miscellaneous 修改 Linker Flags 为: --enable-auto-import -mthreads –mwindows [c4]  

GCC C++ Linker -> Libraries 增加 -L "$(WXWIN)/lib/gcc_lib" “$(MINGW)/lib”

                            增加 -l wxmsw28_core;wxbase28;wxexpat;wxjpeg;wxpng;wxzlib;kernel32; user32;gdi32;comdlg32;winspool;winmm;shell32;comctl32;ole32;oleaut32;uuid;rpcrt4;advapi32;wsock32;odbc32;opengl32. [c5]

 

 

HelloWorld 项目中建立 C++ 源程序文件和头文件: helloworld.h helloworld.cpp ,其内容如下:

Helloworld.h

 

#ifndef HELLOWORLD_H_

#define HELLOWORLD_H_

class BasicApplication : public wxApp {

public :

    virtual bool OnInit();

};

 

class BasicFrame : public wxFrame {

public :

     BasicFrame( const wxChar *title,

                int xpos,

                int ypos,

                int width,

                int height);

    ~BasicFrame();

};

#endif /*HELLOWORLD_H_*/

 

 

Helloworld.cpp

 

#include <wx/wx.h>

#include "helloworld.h"

 

IMPLEMENT_APP(BasicApplication)

 

bool BasicApplication::OnInit() {

    BasicFrame *frame = new BasicFrame( "Hello World!" ,50,50,450,300);

    frame->Show(TRUE);

    SetTopWindow(frame);

    return TRUE;

}

 

BasicFrame::BasicFrame( const wxChar* title,

                        int xpos,

                       int ypos,

                       int width,

                       int height)

        : wxFrame((wxFrame *) NULL ,

                  -1 ,

                  title ,

                  wxPoint(xpos,ypos) ,

                   wxSize(width,height )

                 ) { }

 

BasicFrame::~BasicFrame() {

}

 

 

编译,并运行一下,效果见下图

mingw-show


  [c1]

使用大括号,建立下列系统环境变量:

       WXWIN   C:/wxWidgets-2.8.0

  [c2]

建立下列系统环境变量:

              MINGW   C:/MinGW

  [c3]

会存在一个错误,这个选项去掉,就没有这个这个错误;

  [c4]

会存在一个错误,这个选项去掉,就没有这个这个错误;

  [c5]

输入文件后,在 –l 中按照每个库显示,不能有空格,可以从 debug 文件夹中的文件看到, -l 加载各个库是否正常;

 


在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"

接下来在下面的 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

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值