嵌入式Linux系统的QT4.5开发环境搭建

来源:互联网 发布:lol动态桌面软件 编辑:程序博客网 时间:2024/06/06 18:47

  应导师的要求,最近需要做一个嵌入式linux的网络通信应用,万事开头难,搭建环境就花了我好几天。总结下经验,避免走弯路。

  首先需要下载三个程序包:

1.qt-x11-opensource-src-4.5.0   x11主要是用来安装qvfb等工具的

2.qt--embedded-linux-opensource-src-4.5.0  嵌入式的qt,需要分别编译出X86和arm两个版本

3.qt-creator 开发工具,很好用

在安装这三个软件前,交叉编译的gcc得先安装好,本人安装的是arm-linux-gcc4.3.3这里就不细说了。


qt-x11安装:

1.解压:tar -xvzf qt-x11-opensource-src-4.5.0.tar.gz.

2../configure -prefix 安装路径

3.make

4.sudo make install

安装完成后需要单独编译qvfb!!!!

qvfb:是嵌入式开发必不可少的工具,qvfb可以让我们在PC上仿真开发板的运行结果。

1.进入qt-x11的源码里 /tools/qvfb/文件夹

2.make

3.将生成的qvfb可执行文件复制到之后编译的x86版本的嵌入式QT 的bin文件夹下 

qt-embedded安装:

a.编译X86的qt

1.解压

2. ./configure -prefix /opt/EmbedSky/qt-4.5/__install/x86/ -release -shared -fast -qt-sql-sqlite -plugin-sql-sqlite -qvfb -qt-gfx-qvfb -qt-kbd-qvfb -qt-mouse-qvfb
 -nomake demos -nomake examples

3.make

4.sudo make install

5.设置环境变量!

$sudo gedit /etc/profile   打开profile文件

在最后一行加入:
export QTDIR=/opt/EmbedSky/qt-4.5/__install/x86 
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$QTDIR/lib
export PATH=$PATH:$QTDIR/bin

$source /etc/profile 使立即文件生效 或者重新启动系统也可以


b.编译arm的qt

1.make confclean

2.configure -prefix /opt/EmbedSky/qt-4.5/__install/arm/ -release -shared -fast -no-largefile -qt-sql-sqlite -no-qt3support -no-xmlpatterns -no-mmx -no-3dnow -no-sse -no-sse2 -no-svg -no-webkit -qt-zlib -qt-gif -qt-libtiff -qt-libpng -qt-libjpeg -make libs -nomake examples -nomake docs -nomake demo -no-nis -no-cups -no-iconv -no-dbus -no-openssl -xplatform qws/linux-arm-g++ -embedded arm -little-endian -qt-freetype -depths 16 -qt-gfx-linuxfb -qt-gfx-transformed -qt-gfx-multiscreen -no-gfx-vnc -no-gfx-qvfb -qt-kbd-usb -no-kbd-qvfb -no-glib -armfpa -no-mouse-qvfb -qt-mouse-linuxtp -qt-mouse-tslib -I/tslib-1.4/inclued -L/tslib-1.4/lib

3.make

4.sudo make install

安装完毕,helloworld步骤如下:

1.打开qtcreator,在tools中添加qt版本如图:

要想编译能在本地运行的qt程序就选择x86 的qmake

2.新建一个helloworld工程

3.在project中设置工程的build configuration,如图:

4.bulid工程

5.如果直接运行工程的话会提示错误:

QWSSocket::connectToLocalFile could not connect:: No such file or directory
No Qt for Embedded Linux server appears to be running.
If you want to run this program as a server,
add the "-qws" command-line option.

解决方法是:在终端中

 $qvfb &(&表示后台运行)

$cd 工程目录

$./helloworld -qws

这里qws使得程序以窗口服务器的方式启动。窗口服务器对帧缓冲设备进行独占式管理,其他qt程序通过与窗口服务器进行通信的方式间接地使用这些设备。

因此,第一个qt程序必须以qws方式启动,之后的就不用了也不能了,因为已经被独占了。


一些问题:

1.终端输入qvfb时出现:Cannot open keyboard pipe /tmp/.qtvfb_keyboard-0  ,只要到该文件夹下找到该文件并更改该文件的权限就行:chmod a+rwx XXX


2.编译x11的时候在./configure可能会出现:

Basic XLib functionality test failed!
You might need to modify the include and library search paths by editing
QMAKE_INCDIR_X11 and QMAKE_LIBDIR_X11 in /home/zhu/Qt/qt-x11-opensource-src-4.5.2/mkspecs/linux-g++

这个问题的解决方法就是安装缺少的三个软件包:libX11-dev libXext-dev libXtst-dev

Ubuntu下使用如下命令:sudo apt-get install libX11-dev libXext-dev libXtst-dev

Fedora下使用如下命令:yum install libX11-devel libXext-devel libXtst-devel


3.Ubuntu终端中输入gmake提示找不到该命令:

gmake其实和make是同一个命令,执行下面命令将gmake和make这两个命令软链接起来:

 cd /usr/bin
 sudo ln -s make gmake









  



0 0
原创粉丝点击