wxWidgets是一个开源的跨平台的C++框架(主页http://www.widgets.org),它可以提供GUI(图形用户界面)和其它工具。由于它是跨平台的,同一套代码可以用在Windows, Mac 和 Linux系统上。
它主要是C++语言开发的,但是它也为其它语言提供了接口,像 Python, Perl 和 Ruby。
下面我们从源码编译安装wxWidgets,它可以被编译为静态库,也可以为动态库。
1.下载wxWidgets源代码
去官网下载最新版本 wxwidgets.org。
1 |
$ wget https://github.com/wxWidgets/wxWidgets/releases/download/v3.0.2/wxWidgets-3.0.2.tar.bz2 |
解压文件:
1 2 |
$ tar xvf wxWidgets-3.0.2.tar.bz2 $ cd wxWidgets-3.0.2/ |
2.安装编译环境
为了编译wxwidgets,需要一些编译工具,像g++;还需要安装GTK(wxwidgets依赖)。
1 |
$ sudo apt-get install libgtk-3-dev build-essential checkinstall |
3.编译wxWidgets
创建一个目录,用来存放编译时生成的文件。
1 2 |
$ mkdir wx_build $ cd wx_build/ |
配置:
1 |
$ ../configure --disable-shared --enable-unicode |
“–disable-shared”指定构建静态库。
编译:
1 |
$ make |
4.使用checkinstall安装
这里没有使用make install安装,我使用checkinstall生成deb包。运行:
1 |
$ sudo checkinstall |
回答几个问题:
执行完成之后,wxWidgets安装完成,并创建了一个deb安装包。
5.编译例子程序
在wx_build目录中有一个samples目录,进入目录:
1 |
$ cd samples/ |
编译:
1 |
$ make |
进入例子目录,执行demo:
6.第一个wxWidgets程序
在你体验完demo之后,就可以照猫画虎创建一个简单的小程序了。
创建文件hello.cpp,内容如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
#include <wx/wx.h> class Hello : public wxFrame { public: Hello(const wxString& title) : wxFrame(NULL, wxID_ANY, title, wxDefaultPosition, wxSize(250, 150)) { Centre(); } }; class MyApp : public wxApp { public: bool OnInit() { Simple *simple = new Simple(wxT("Hello")); simple->Show(true); return true; } }; wxIMPLEMENT_APP(MyApp); |
编译:
1 |
$ g++ hello.cpp `wx-config --cxxflags --libs std` -o hello |
执行:
1 |
./hello |