现在的位置: 首页 > 综合 > 正文

qt环境搭建

2013年09月11日 ⁄ 综合 ⁄ 共 4942字 ⁄ 字号 评论关闭

 

首先从官网下载QT的嵌入式版,注意官网上的嵌入式版和linux版都是199M,其实他们在官网上的位置不一样,

Qt libraries 4.7.0 for embedded Linux (199 MB)

http://get.qt.nokia.com/qt/source/qt-everywhere-opensource-src-4.7.0.tar.gz

Qt libraries 4.7.0 for Linux/X11(199 MB)

http://get.qt.nokia.com/qt/source/qt-everywhere-opensource-src-4.7.0.tar.gz

其实下载下来是一样(看他们的下载路径都是一样的)的,。下载下来的文件名为:
qt-everywhere-opensource-src-4.7.0.tar.gz

解压

tar zxvf   qt-everywhere-opensource-src-4.7.0.tar.gz

把解压后的文件再复制两份(一共三份),分别取名为pc; x86; arm;然后开始分别编译:

1.编译PC,  cd pc

./configure

make

这一步可能出错:1

此完整出错信息是在./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++

config.test
/x11/xlib 执行make命令,看出错信息
g++ -Wl,-O1 -o xlib xlib.o    -L/usr/X11R6/lib -lXext -lX11 -lm
/usr/bin/ld: cannot find -lXext
可以看到,g++在/usr/X11R6/lib下,找不到libXext.so

其原因就在于需要安装libX11的开发包,根据自己的系统特点,安装 libX11-dev   libXext-dev   libXtst-dev

问题解决!

可能出错:2

cc1: error: unrecognized command line option "-fvisibility=hidden"

make: *** [sub-corelib-make_default-ordered] 错误 2

出错原因是gcc版本太低,不支持-fvisibility=hidden选项,因为一开始的时候我们把gcc改成了3.4版本,现在要(利用备份)把它改回来。然后,重新编译make.。

可能出错3:

/usr/bin/ld: cannot find -lXrender

说明还少一个包:安装    libxrender-dev 

sudo apt-get install cutecom

sudo apt-get install autoconf automake libtool

截至到现在,最后一次make没有出错,但有不错warning,不管它

sudo make install

2. 编译嵌入式x86版:

进入x86目录,设置其以QVFB作为显示输出

# sudo ./configure -prefix /usr/local/Trolltech/QtEmbedded-4.7.0 -embedded x86 -qt-gfx-qvfb -qt-kbd-qvfb -qt-mouse-qvfb

# sudo make

# sudo make install

安装过程比较长,没有碰到过错误。

编译安装PC 版中的 qvfb:

进入pc/tools/qvfb/目录

#make

#make install

3. 编译arm版:

先安装tslib

下载tslib-1.4.    点击   tslib1.4

./autogen.sh  生成配置文件

CC= $ARM_TOOL_PATH/arm-linux-gcc

X= $ARM_TOOL_PATH/arm-linux-g++

./configure --prefix=/usr/local/tslib-1.4 --host=arm-linux ac_cv_func_malloc_0_nonnull=yes  

make

make install

再安装arm

cd arm

./configure -prefix /usr/local/Trolltech/QtEmbedded-4.7.0-arm  /

-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-1.4/include -L/usr/local/tslib-1.4/lib

make

sudo make install

等待安装完成!

=============================================================

测试安装是否正确完成

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

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

或者:

cd   /usr/local/Trolltech/QtEmbedded-4.7.0/demos/books

qvfb -width 640 -height 480 &

./books -qws

执行完qvfb;弹出一个类似终端的窗口,窗口背景为黑色,应该相当与模拟器的屏幕

执行完book;窗口背景不再是黑色,屏幕中弹出一个类似于图书管理系统的界面,这就是我们想要看到的!

这一步可能出错,就是找不到qvfb,提示你安装qt4---*****;和qt3---***;直接apt-get 安装第二个即可。sudo apt-get install qt3-dev-tools-embedded             
修复

 

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

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

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

~/.setenv.sh:
QTEDIR=/usr/local/Trolltech/QtEmbedded-4.7.0-arm
PATH=/usr/local/Trolltech/QtEmbedded-4.7.0-arm/bin:$PATH
LD_LIBRARY_PATH=/usr/local/Trolltech/QtEmbedded-4.7.0-arm/lib:$LD_LIBRARY_PATH

后面的步骤:

5、移植
将 PC 机上  /usr/local/Trolltech/QtEmbedded-4.7.0-arm/lib 中的库复制到2440的 /usr/local/Trolltech/QtEmbedded-4.7.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、程序编译:
以下编译方式,是把配置文件放到用户目录下,取了3个不同的名字,也可以把它们分别放到三个安装目录下,编译的时候进到目录里边运行。

使用:

我们在运行的时候分别运行对应的脚本即可,比如我们要用qt-x11:

cd /usr/local/Trolltech/Qt-4.7.0

source setenv.sh

然后就可以用qmake designer等工具了.


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

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

===============================================================

应该说到这一步,就基本算是完了,接下来可以再pc机上开发我们的应用程序了。如果之后碰到什么问题,我会不断地往此处添加。

推荐几篇,我配环境时,觉得不错的文章:

http://blog.csdn.net/PenglueR/archive/2009/12/10/4981753.aspx

http://www.xici.net/#u13572321/d118122274.htm

http://hi.baidu.com/jesserei/blog/item/861c201e18b1cd04314e1500.html

抱歉!评论已关闭.