Linux下的wxWidgets多平台编译环境搭建

操作系统 强烈建议 2024-02-07 14:56 178 0

  在Linux上利用源码包安装wxWidgets并构建多平台编译环境,简单记录一下,备忘。

  –Linux distribution:Ubuntu 10.04.3 LTS (Lucid Lynx)

  –wxWidgets version:2.8.12

  –gcc version:4.4.3

  1、基本编译环境安装。

  安装编译工具(gcc之类)

  sudo apt-get install build-essential

  安装X11

  sudo apt-get install libx11-dev

  安装GTK需要的一堆东西

  sudo apt-get install gnome-core-devel

  剩下的缺啥装啥就行了,检查一下pkg-config

  2、下载wxWidgets源码包,因为要构建多平台编译环境,因此选择wxAll版本,全部包含。

  slyar@slyar-desktop:~$ wget

  3、解压缩到当前目录

  slyar@slyar-desktop:~$ tar –zxvf wxWidgets-2.8.12.tar.gz

  4、这里我使用GTK和X11平台来演示,我把 /opt 作为我编译后程序存放的目录,分别创建2个子目录

  slyar@slyar-desktop:~$ sudo mkdir /opt/buildgtk

  slyar@slyar-desktop:~$ sudo mkdir /opt/buildx11

  5、编译wxGTK

  slyar@slyar-desktop:~$ cd /opt/buildgtk

  slyar@slyar-desktop:/opt/buildgtk$ sudo /home/slyar/wxWidgets-2.8.12/configure –with-gtk

  slyar@slyar-desktop:/opt/buildgtk$ sudo make

  slyar@slyar-desktop:/opt/buildgtk$ sudo make install

  slyar@slyar-desktop:/opt/buildgtk$ sudo ldconfig

  6、编译wxX11

  slyar@slyar-desktop:~$ cd /opt/buildx11

  slyar@slyar-desktop:/opt/buildx11$ sudo /home/slyar/wxWidgets-2.8.12/configure –with-x11

  slyar@slyar-desktop:/opt/buildx11$ sudo make

  slyar@slyar-desktop:/opt/buildx11$ sudo make install

  slyar@slyar-desktop:/opt/buildx11$ sudo ldconfig

  7、此时wxGTK与wxX11就都编译并且安装完成了,以后编译程序的时候只需要调用不用的类库即可。可以看到编译好的wxWidgets类库存放在/usr/local/lib/wx/include/下

  8、在用户目录下编写一个wxWidgets程序,用sample也可以。这里我只用最简单的auidemo.cpp,单文件,可以不写makefile了。

  9、使用wxGTK编译,即调用GTK的类库

  slyar@slyar-desktop:~/aui$ g++ auidemo.cpp `/opt/buildgtk/wx-config –libs –cxxflags` -o aui_gtk

  10、使用wxX11编译,即调用X11的类库

  slyar@slyar-desktop:~/aui$ g++ auidemo.cpp `/opt/buildx11/wx-config –libs –cxxflags` -o aui_x11

  11、查看生成的bin文件,我就不执行了,X11的很难看==

  12、默认的wx-config存放在下面这里,实际上它也只是一个ln而已,我们可以自己修改。但使用多平台编译的时候就需要我们自己定义类库路径了。

  slyar@slyar-desktop:/$ ls -l /usr/local/bin/wx-config

  /usr/local/bin/wx-config -> /usr/local/lib/wx/config/x11univ-ansi-release-2.8



时间:(2024-02-07 14:56:58)
本站资源均来自互联网或会员发布,如果不小心侵犯了您的权益请与我们联系。我们将立即删除!谢谢!