wxWidget作为知名的跨平台界面开发框架,已经有相当长的历史了,最近利用业余时间研究了wxWidget框架在Ubuntu下的开发方法,其中搭建开发环境走了一些弯路,参考了网上不少好文,总算尘埃落定,不敢独享,把搭建步骤记录于此,希望给有同样研究兴趣的同学一个参考。
那么现在开始...
开始之前需要安装:
C++ 基本开发环境:sudo apt-get install build-essential
安装X11库文件:sudo apt-get install libx11-dev
安装GTK需要的一堆东西:sudo apt-get install gnome-core-devel
安装minGW32,windows交叉编译工具:sudo aptitude install -y mingw32 mingw32-binutils mingw32-runtime gcc-mingw32
说明:因为我搭建的环境预备用来编译gtk,x11和msw(MS Windows)三个平台的代码,所以需要先安装这三种平台的交叉编译工具,如果还要编译其他平台的程序,就还得安装其他平台的编译工具。
以下为配置步骤:
1. 从wxWidget官方网站下载源代码包wxAll版本,次级版本号为双数的是稳定版本(目前是2.8.12),单数是最新开发版(2.9.4),一般而言不够稳定,我们下载稳定版:
wxWidgets-2.8.12.tar.gz( http://www.wxwidgets.org/downloads/ )
解压到/home/youxin/code/wxWidgets-2.8.12,作为程序根目录:
tar -xzvf wxWidgets-2.8.12.tar.gz
2.在程序根目录wxWidgets-2.8.12下,建立各平台文件夹,目前建立了一下三个:
build28-gtk-ud //存放gtk平台文件
build28-x11-ud //存放x11平台文件
build28-msw-ud //存放MS Windows平台文件
自己定的目录命名规则,u代表开启unicode,d代表开启debug, s代表开启shared lib, 没有这些字母表示不开启 如果后续要建立gtk平台unicode, release版本,连接动态库的编译环境,则目录名为build28-gtk-urs
一下三步参考《Cross-Platform GUI Programming with wxWidgets EN.chm》Appendix A:installing wxWidgets--Linux,Unix, and Mac OS X, GCC
3.编译和配置gtk环境:
cd build28-gtk-ud
sudo ../configure --with-gtk --enable-unicode --enable-debug --disable-shared //该步骤在当前目录下生成平台的各种文件
//上一指令隐含参数--build=i686-linux-gnu --host=i686-linux-gnu --target=i686-linux-gnu
sudo make //编译平台库文件
sudo make install //将库文件安装到/usr/local/lib,其他用户可以共享使用;将当前配置wx-config拷贝到usr/local/bin,作为默认编译配置
sudo ldconfig //更新、注册新添加的动态库
4.编译和配置x11环境:
cd build28-x11-ud
sudo ../configure --with-x11 --enable-unicode --enable-debug --disable-shared
//上一指令隐含参数--build=i686-linux-gnu --host=i686-linux-gnu --target=i686-linux-gnu
sudo make
sudo make install
sudo ldconfig
5.编译和配置msw环境:
cd build28-msw-ud
sudo ../configure --with-msw --host=i586-mingw32msvc --build=i686-linux --enable-unicode --enable-debug --disable-shared
//上一指令隐含参数--target=i586-mingw32msvc
sudo make
sudo make install
sudo ldconfig
以上三个步骤执行完后,每个build目录都会生成samples文件夹,里面会为每个平台生成对应的例子编译makefile文件,直接在例子的目录中执行make,可以编译出例子。
6.在任意程序目录使用默认配置编译代码,以simple.cpp为例,使用命令:
g++ -o simple si