`
ydbc
  • 浏览: 745516 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类
最新评论

Linux 下 Qt 4.6.0 嵌入式开发环境的搭建、移植 转自紫侠大哥的博文

 
阅读更多

Qt:qt-everywhere-opensource-src-4.6.0.tar.gz
嵌入式平台:2440
arm-linux-gcc:4.1.2,下载(我用4.3.2和4.4.1版本时,移植时都有段错误。我把它放在:/usr/local/arm/4.1.2/。)

将 qt-everywhere-opensource-src-4.6.0.tar.gz 压缩包解压为3份,分别编译 PC ,嵌入式 x86 和 arm 三个版本。

1. 编译 PC 版:
$ ./configure
$ make
# make install

2. 编译嵌入式x86版:
$ ./configure -embedded x86 -qt-gfx-qvfb -qt-kbd-qvfb -qt-mouse-qvfb
$ make
# make install

编译安装PC版中的 qvfb:
$ cd ***/qt-everywhere-opensource-src-4.6.0/tools/qvfb
$ make
# cp ***/qt-everywhere-opensource-src-4.6.0/bin/qvfb /usr/local/Trolltech/QtEmbedded-4.6.0/bin


3. 编译嵌入式arm版(需要 arm-linux-gcc 的支持):

编译tslib对触摸屏支持:
下载,tslib1.4.tar.gz,解压后:
$./configure --prefix=/usr/local/tslib/--host=arm-linux ac_cv_func_malloc_0_nonnull=yes
$ make
# make install

设置环境变量,以便编译时找到相关的库:
$ export CPLUS_INCLUDE_PATH=/usr/local/arm/4.1.2/arm-angstrom-linux-gnueabi/include/c++:/usr/local/arm/4.1.2/arm-angstrom-linux-gnueabi/include/c++/arm-angstrom-linux-gnueabi

配置:
$ ./configure /
-opensource /
-confirm-license /
-release -shared /
-embedded arm /
-xplatform qws/linux-arm-g++ /
-depths 16,18,24 /
-fast /
-optimized-qmake /
-pch /
-qt-sql-sqlite /
-qt-libjpeg /
-qt-zlib /
-qt-libpng /
-qt-freetype /
-little-endian -host-little-endian /
-no-qt3support /
-no-libtiff -no-libmng /
-no-opengl /
-no-mmx -no-sse -no-sse2 /
-no-3dnow /
-no-openssl /
-no-webkit /
-no-qvfb /
-no-phonon /
-no-nis /
-no-opengl /
-no-cups /
-no-glib /
-no-xcursor -no-xfixes -no-xrandr -no-xrender /
-no-separate-debug-info /
-nomake examples -nomake tools -nomake docs /
-qt-mouse-tslib -I/usr/local/tslib/include -L/usr/local/tslib/lib

配置结果:
Debug ............... no
Qt 3 compatibility .. no
QtDBus module ....... no
QtConcurrent code.... yes
QtScript module ..... yes
QtScriptTools module yes
QtXmlPatterns module no
Phonon module ....... no
Multimedia module ... yes
SVG module .......... yes
WebKit module ....... no
Declarative module .. no
STL support ......... no
PCH support ......... yes
MMX/3DNOW/SSE/SSE2.. no/no/no/no
iWMMXt support ...... no
IPv6 support ........ yes
IPv6 ifname support . yes
getaddrinfo support . yes
getifaddrs support .. yes
Accessibility ....... yes
NIS support ......... no
CUPS support ........ no
Iconv support ....... no
Glib support ........ no
GStreamer support ... auto
Large File support .. yes
GIF support ......... plugin
TIFF support ........ no
JPEG support ........ plugin (qt)
PNG support ......... yes (qt)
MNG support ......... no
zlib support ........ yes
Session management .. no
Embedded support .... arm
Freetype2 support ... yes
Graphics (qt) ....... linuxfb multiscreen
Graphics (plugin) ...
Decorations (qt) .... styled windows default
Decorations (plugin)
Keyboard driver (qt). tty
Keyboard driver (plugin)
Mouse driver (qt) ... pc linuxtp tslib
Mouse driver (plugin)
OpenGL support ...... no
OpenVG support ...... no
SQLite support ...... qt (qt)
OpenSSL support ..... no
alsa support ........ yes

编译:$ make

如果出错:
/usr/local/arm/4.1.2/bin/../lib/gcc/arm-angstrom-linux-gnueabi/4.1.2/../../../../arm-angstrom-linux-gnueabi/bin/ld: warning: libts-0.0.so.0, needed by /home/stillwater/4.1.2/qt-everywhere-opensource-src-4.6.0/lib/libQtGui.so, not found (try using -rpath or -rpath-link)
/home/stillwater/4.1.2/qt-everywhere-opensource-src-4.6.0/lib/libQtGui.so: undefined reference to `ts_read_raw'
/home/stillwater/4.1.2/qt-everywhere-opensource-src-4.6.0/lib/libQtGui.so: undefined reference to `ts_open'
/home/stillwater/4.1.2/qt-everywhere-opensource-src-4.6.0/lib/libQtGui.so: undefined reference to `ts_fd'
/home/stillwater/4.1.2/qt-everywhere-opensource-src-4.6.0/lib/libQtGui.so: undefined reference to `ts_config'
/home/stillwater/4.1.2/qt-everywhere-opensource-src-4.6.0/lib/libQtGui.so: undefined reference to `ts_close'
/home/stillwater/4.1.2/qt-everywhere-opensource-src-4.6.0/lib/libQtGui.so: undefined reference to `ts_read'
collect2: ld returned 1 exit status
make[2]: *** [deform] Error 1
make[2]: Leaving directory `/home/stillwater/4.1.2/qt-everywhere-opensource-src-4.6.0/demos/deform'
make[1]: *** [sub-deform-make_default] Error 2
make[1]: Leaving directory `/home/stillwater/4.1.2/qt-everywhere-opensource-src-4.6.0/demos'
make: *** [sub-demos-make_default-ordered] Error 2

解决办法:
修改qt-everywhere-opensource-src-4.6.0/mkspecs/qws/linux-arm-g++/qmake.conf 文件(添加lts参数):
QMAKE_CC = arm-linux-gcc -lts
QMAKE_CXX = arm-linux-g++ -lts
QMAKE_LINK = arm-linux-g++ -lts
QMAKE_LINK_SHLIB = arm-linux-g++ -lts

参考:http://74.125.153.132/search?q=cache:3WzcJeRRj4sJ:nckuhuahua.pixnet.net/blog/post/30066956+libQtGui.so:+undefined+reference+to+%60ts_read%27&cd=3&hl=en&ct=clnk&client=iceweasel-a

添加环境变量:# export PATH=/usr/local/arm/4.1.2/bin:$PATH

安装:# make install-strip

安装完成后,在 /usr/local/Trolltech 目录中有三个文件夹:Qt-4.6.0、QtEmbedded-4.6.0、QtEmbedded-4.6.0-arm。

测试嵌入式 x86 :
$ source ~/.setenv-qt-x86.sh
$ qvfb -width 800 -height 600 &
$ /usr/local/Trolltech/QtEmbedded-4.6.0/demos/books/books -qws

4、编写环境变量设置文件(方便不同环境切换):

PC 机的~/.bashrc 中添加:
export PATH=$PATH:/usr/local/arm/4.1.2/bin

~/.setenv-qt-x11.sh(对应于PC版Qt):
PATH=/usr/local/Trolltech/Qt-4.6.0/bin:$PATH
LD_LIBRARY_PATH=/usr/local/Trolltech/Qt-4.6.0/lib:$LD_LIBRARY_PATH
CPLUS_INCLUDE_PATH=

~/.setenv-qt-x86.sh:
QTEDIR=/usr/local/Trolltech/QtEmbedded-4.6.0
PATH=/usr/local/Trolltech/QtEmbedded-4.6.0/bin:$PATH
LD_LIBRARY_PATH=/usr/local/Trolltech/QtEmbedded-4.6.0/lib:$LD_LIBRARY_PATH

~/.setenv-qt-arm.sh:
QTEDIR=/usr/local/Trolltech/QtEmbedded-4.6.0-arm
PATH=/usr/local/Trolltech/QtEmbedded-4.6.0-arm/bin:$PATH
LD_LIBRARY_PATH=/usr/local/Trolltech/QtEmbedded-4.6.0-arm/lib:$LD_LIBRARY_PATH
CPLUS_INCLUDE_PATH=/usr/local/arm/4.1.2/arm-angstrom-linux-gnueabi/include/c++:/usr/local/arm/4.1.2/arm-angstrom-linux-gnueabi/include/c++/arm-angstrom-linux-gnueabi:$CPLUS_INCLUDE_PATH

5、移植
将 PC 机上 /usr/local/Trolltech/QtEmbedded-4.6.0-arm/lib 中的库复制到2440的 /usr/local/Trolltech/QtEmbedded-4.6.0-arm/lib(对应目录复制)。

将 PC 机上 /usr/local/tslib 中的库复制到2440的 /usr/local 。

如果运行时还缺少其他的库,复制方法相同。

为支持触摸屏,开机自动设置环境变量,在2440的 /etc/profile中追加:
export LD_LIBRARY_PATH=/usr/local/lib:$QTDIR/lib:$LD_LIBRARY_PATH
export TSLIB_ROOT=/usr/local/lib
export TSLIB_TSDEVICE=/dev/input/event0
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_PLUGINDIR=/usr/local/lib/ts
export TSLIB_CONSOLEDEVICE=none
export TSLIB_CONFFILE=/usr/local/etc/ts.conf
export POINTERCAL_FILE=/etc/pointercal
export TSLIB_CALIBFILE=/etc/pointercal
export QWS_MOUSE_PROTO=Tslib:/dev/input/event0

注:可用$ cat /dev/input/event0 测试触摸屏

取消/usr/local/etc/ts.conf中的第一个注释:
# module_raw input (去掉#,并且该行顶格)

运行 /usr/local/bin/ts_calibrate 校正触摸屏。

6、程序编译:
PC版:
$ make distclean
$ source ~/.setenv-qt-x11.sh
$ qmake
$ make

arm 版:
$ make distclean
$ source ~/.setenv-qt-arm.sh
$ qmake
$ make

参考:
http://blog.ednchina.com/gurongjiang/352778/Message.aspx

分享到:
评论

相关推荐

    QT在线安装器qt-unified-windows-x64-4.6.0-online.exe

    QT在线安装器qt-unified-windows-x64-4.6.0-online.exe是Qt开发框架的一个重要工具,专为Windows 64位操作系统设计。Qt是一个跨平台的应用程序开发框架,广泛应用于桌面、移动和嵌入式设备的软件开发。这个安装器...

    Qt 4.6.0 商业版注册机

    Qt 4.6.0 商业版注册机 亲自测试过!请放心下载!

    Qt-unified-windows-x64-4.6.0-online安装Qt

    在本主题中,我们将详细介绍如何使用"Qt-unified-windows-x64-4.6.0-online"进行Qt在Windows 64位环境下的在线安装。 1. **Qt Installer Framework**: "Qt-unified-windows-x64-4.6.0-online.exe" 是基于Qt ...

    qt creator 4.6.0

    qtcreator 4.6.0 用Qt 5.9.5库,编译工具就GCC 5.3.0 32bit Qt5.9.5是个长期支持人版本。 下载后,安装方法: 把c:\qt\qt5.9.5\qt5.9.5\mingw53_32\bin文件夹下面所有的dll文件, 复制到c:\qt\qtcreator 4.6.0\bin...

    qt-win-opensource-4.6.0-mingw.part05

    qt-win-opensource-4.6.0-mingw.part05qt-win-opensource-4.6.0-mingw.part05qt-win-opensource-4.6.0-mingw.part05qt-win-opensource-4.6.0-mingw.part05qt-win-opensource-4.6.0-mingw.part05

    qt-unified-windows-x64-4.6.0-online.exe

    qt-unified-windows-x64-4.6.0-online.exe安装包及国内映射源地址。安装速度快,给赶时间的网友。解压安装,把脚本代码复制到cmd种回车即可。 qt-unified-windows-x64-4.6.0-online.exe安装包及国内映射源地址。安装...

    qt-win-commercial-4.6.0-vs2008.part08.rar

    qt-win-commercial-4.6.0-vs2008.part08.rar

    qt-unified-windows-x64-4.6.1-online.exe

    "qt-unified-windows-x64-4.6.1-online.exe"是Qt官方提供的一款针对Windows 64位系统的在线安装程序,它包含了Qt开发环境的全部组件,方便用户快速便捷地搭建Qt开发环境。 首先,我们来理解一下这个文件名的含义。...

    QT Commercial 4.6.0

    Nokia+QT+Commercial+4.6.0.torrent qt4.6商业版 请尽快下载,链接可能失效!

    OpenCV4.6.0资源包

    OpenCV4.6.0资源包 包括源码包和扩展包opencv_contrib-4.6.0 适用于树莓派移植OpenCV的源码 为不方便下载的孩子提供捷径

    qt-win-commercial-4.6.0-vs2008.part07.rar

    qt-win-commercial-4.6.0-vs2008.part07.rar

    QtEmbedded开发介绍之配置参数

    在Qt的嵌入式开发中,配置参数是关键步骤,尤其对于资源有限的嵌入式设备而言,裁剪Qt以适应特定项目需求至关重要。QtEmbedded,即Qt for Embedded Linux,提供了丰富的配置选项来定制编译过程,以确保构建出最适合...

    opencv-4.6.0安装包

    OpenCV是一个基于Apache2.0许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python...

    opencv-4.6.0.zip

    opencv 4.6.0 源码包 可作为编译安装使用

    proj-4.6.0.tar.gz

    "proj-4.6.0.tar.gz" 是一个在Linux和Ubuntu环境中常见的压缩包文件,主要包含的是"proj"项目的4.6.0版本。"proj"是一个开源库,主要用于地理坐标系统的转换和操作,它提供了多种地理坐标系统之间转换的算法,包括...

    openCV4.6.0 + openCV-contrib + Qt5.12.3

    在本文中,我们将深入探讨如何在Qt5.12.3环境下编译并使用OpenCV 4.6.0以及OpenCV_contrib 4.6.0的库文件。OpenCV(开源计算机视觉库)是一个强大的计算机视觉和机器学习软件库,而OpenCV_contrib则包含了额外的模块...

    QT安装包(开源版本)

    QT是一个功能强大的C++框架,它不仅包含了丰富的库,还提供了集成开发环境(IDE),使得开发人员能够方便地构建桌面、移动以及嵌入式设备上的应用。此安装包是开源版本,意味着它的源代码对公众开放,允许自由使用、...

    qt-win-opensource-4.6.0-mingw.part08

    qt-win-opensource-4.6.0-mingw.part08qt-win-opensource-4.6.0-mingw.part08qt-win-opensource-4.6.0-mingw.part08qt-win-opensource-4.6.0-mingw.part08

    win下安装gocv下用的opencv_contrib-4.6.0.zip与opencv-4.6.0.zip

    在Windows环境下搭建GoCV开发环境,首先需要解决的是OpenCV库的安装问题。GoCV是Go语言的一个开源库,它提供了对计算机视觉库OpenCV的接口,使得开发者能够在Go程序中利用OpenCV的强大功能。本教程将详细介绍如何在...

    OpenCV-4.6.0 for Java

    2. 如果是在Windows环境下,需要根据项目运行平台(64位或32位)将相应的`opencv_java460.dll`文件放置在系统的`PATH`环境变量所包含的目录下,或者直接放在Java可执行文件的同一目录下。 3. 使用Java代码导入OpenCV...

Global site tag (gtag.js) - Google Analytics