平台:UBUNTU
2.3 GTK+开发环境
2.3.1 PC机编译环境的搭建
1、安装gcc
$ sudo apt-get install build-essential |
安装完毕后写个helloworld程序就可以验证是否安装成功
2、安装GTK环境
安 装GTK环境只要安装一个gnome-core-devel就可以了,里面集成了很多其他的包。除此之外还要转一些其他的东西,如 libglib2.0 -doc、libgtk2.0-doc帮助文档,devhelp帮助文档查看,glade-gnome、glade-common、glade-doc图 形界面设计等。
$ sudo apt-get install libgtk2.0-dev $ sudo apt-get install gnome-core-devel |
3、测试程序
#include <gtk/gtk.h> } |
用下面命令编译运行
$ gcc gtkhello.c -o gtktest `pkg-config --cflags --libs gtk+-2.0`
$ ./gtktest
会显示一个带有一个按钮的窗口,点击按钮以后窗口关闭,命令行显示Hello Ubuntu!
2.3.2 MIPS交叉编译环境的搭建
1、安装交叉编译器
根据厂家提供的安装说明,把工具链放到/opt下,设置环境变量
$ export PATH=/opt/mipsel/bin:$PATH |
$ mipsel-linux-gcc test.c –o test
编译通过并且能在MIPS平台上运行,说明编译器路径设置成功
使用file命令可查看二进制可执行文件的信息(包括内核版本号,处理器信息)
$ file test
MIPS平台可执行文件信息
ELF 32-bit LSB executable, MIPS, version 1 (SYSV), for GNU/Linux 2.4.0, dynamically linked (uses shared libs), not stripped |
对比之下,
Intel平台可执行文件信息
ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.6.8, dynamically linked (uses shared libs), not stripped |
2、编译能在开发板上运行的gtk+程序
测试程序
#include <gtk/gtk.h> } |
$ mipsel-linux-gcc gtktest.c –o gtktest `pkg-config --cflags --libs gtk+-2.0`
编译成功后放到开发板上运行的时候提示无法display,估计是因为开发板上原来就已经有显示界面GPE的缘故,修改/etc/init.d/rcS后,成功运行。但是窗口的没有边框,重新开启GPE的时候就有边框了,可能是窗口管理器的问题。
虽然运行成功了,但是通过命令
$ pkg-config –cflags –libs gtk+-2.0
出现的路径信息
-I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/include/pixman-1 -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangocairo-1.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0 |
就可以发现此时链接的库是本地计算机的库,而不是厂家提供的适合运行在开发板上的库。
使用命令
$ export PKG_CONFIG_PATH=/opt/mipsel/mipsel-linux/lib/pkgconfig |
出现路径信息
-DPNG_NO_MMX_CODE -I/opt/mipsel/mipsel-linux/include/gtk-2.0 -I/opt/mipsel/mipsel-linux/lib/gtk-2.0/include -I/opt/mipsel/mipsel-linux/include/atk-1.0 -I/opt/mipsel/mipsel-linux/include/cairo -I/opt/mipsel/mipsel-linux/include/pango-1.0 -I/opt/mipsel/mipsel-linux/include/glib-2.0 -I/opt/mipsel/mipsel-linux/lib/glib-2.0/include -I/opt/mipsel/mipsel-linux/include/freetype2 -I/opt/mipsel/mipsel-linux/include -I/opt/mipsel/mipsel-linux/include/libpng12 -L/opt/mipsel/mipsel-linux/lib -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangocairo-1.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0 |
这时候链接的库才是厂家所提供的库
虽然使用本地计算机的库也可以编译并在开发板上运行,然而使用厂家提供的库还是非常必要的。
3、环境变量的生效
$ sudo vim /root/.bashrc,
最后面添加
$ export PATH=/opt/mipsel/bin:$PATH |
重启之后生效
2.3.3集成开发环境的建立
集成开发环境使设计界面与其它部分代码完全分开,并且有可能做到在对界面进行改动后不必对应用进行编译。图形用户界面设计小组可不必关心应用程序的运行细 节, 同时编程人员也可以把他们的时间用于其它方面,而不需为界面的修改重复编写大量烦琐的gtk+函数。这种分工开发的形式符合软件工程的要求,对GUI软件 的开发也更方便。
glade的优点
1.让Glade设计出界面元素,设置界面元素属性,为构件的信号设置回调函数;
2.将其存为XML格式,观察并修改不符合要求的部分;
3.编写应用其它部分代码,并在应用中载入Glade文件,编译C代码生成执行文件。
安装glade2
在应用程序->添加/删除里面搜索glade,把相关的项选上并下载
此外还需要下载libglade,libglade依赖于libxml和gtk+
有两种交叉编译方式
自己写Makefile
CC = mipsel-linux-gcc
|
$ make
成功编译并在开发板上运行
第二种方法
画好界面,点击联编后,命令行输入
# ./autogen.sh
# export CC=mipsel-linux-gcc
# ./configure --host=mipsel --build=i686 --target=mipsel --with-gtk-exec-
prefix=/opt/mipsel/mipsel-linux
# make