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

2019-07-12 16:25发布

  应导师的要求,最近需要做一个嵌入式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