环境:windows xp,eclispe—cpp
<script type="text/javascript"> </script>
将 wxWidgets 压缩包解压到你要安装的目标目录( C:/wxWidgets-2.8.0 )。
建立下列系统环境变量:
WXWIN C:/wxWidgets-2.8.0
打开一个命令行窗口,进入 wxWidgets 目录中进行编译安装。如下图:
具体的编译选项可参考 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,
在 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() {
}
编译,并运行一下,效果见下图
输入文件后,在 –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