注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

不懂风情,承蒙错爱。

Making love to Raspberry Pi

 
 
 

日志

 
 
关于我

我爱如莲的少男少女,他们笑容纯真,不说假话。

网易考拉推荐

ubuntu10.10中安装qte  

2011-05-23 16:16:04|  分类: 嵌入式 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

参考1:http://blogold.chinaunix.net/u3/98651/showart_2275577.html
参考2:http://blog.ednchina.com/xczxwy/359815/message.aspx
参考3:汪明虎,欧文盛等。ARM嵌入式Linux应用开发入门。北京:中国电力出版社,2008

1、系统环境以及软件准备
主机操作系统:Ubuntu 10.10
主机编译器:gcc version 4.4.5 (Ubuntu/Linaro 4.4.4-14ubuntu5)
交叉编译器:arm-linux-gcc 4.0.0
软件安装包:(软件包事先下载到了主目录下的Qt目录)
qt-everywhere-opensource-src-4.7.3.tar.gz   (适合 x11 ,embedded)

2.安装qt-x11(主要是为了得到assistant ,designer ,qvfb,uic 等工具)

A、编译安装qt-x11到/usr/local/qt-x86目录
解压:tar xzvf  qt-everywhere-opensource-src-4.6.2.tar.gz,复制得到三份相同文件,目录分别为qt-x11, qte-x86, qte-arm
进入解压目录: cd qt-x11
配置:./configure -prefix /usr/local/qt-x86 -qvfb
编译:make
安装: make install  

NOTE: 配置时要加上 -qvfb ,否则后面无法编译生成 qvfb(Qt/Embedded Virtual Framebuffer) 工具
NOTE: 如果配置时不用-prefix指明安装目录,则会默认安装在/usr/local/Trolltech/***

B、编译安装qvfb

进入qvfb源文件目录:cd qt-everywhere-opensource-src-4.6.2/tools/qvfb/

编译:make
安装:sudo make install

然后将
完成后会在/usr/local/qt-x86/bin 里找到 qvfb


3.编译安装qt-embedded

这里要编译qte的两个版本,qte for x86 (主要是生成在x86体系结构(即开发主机上)通过qvfb 运行的工具和库文件),
qte for arm(主要是生成在arm体系结构(即开发板上)直接运行的工具和库文件)

qte for x86 :

A:进入刚才解压得到的目录
cd qte-x86

B:编译并安装 qte for x86(在 /usr/local/qte-x86下生成一些工具和相应的库文件)

配置:./configure -prefix /usr/local/qte-x86 -embedded x86 -qvfb

编译:make

安装:sudo make install   


qte for arm:

A:进入刚才解压得到的目录
cd  qte-arm
B:编译并安装 qte-for arm(在 /usr/local/qte-arm下生成 一些工具和相应的库文件)

配置:./configure -prefix /usr/local/qte-arm -embedded arm -xplatform qws/linux-arm-g++ -D__ARM_ARCH_5TEJ__

(最后的参数  -D__ARM_ARCH_5TEJ__ 是出现了后面的第七个错误 #error "Not supported ARM architecture" 后又重新回来加上的,加上后指明了适合的平台就没这个错误了)

编译:make
安装:sudo make install   


4.设置环境变量

A:针对 qte for x86的

cd /usr/local/
vi setenv-x86
编辑完后的内容如下:
export QT4DIR=/usr/local/qt-x86
export QTEDIR=/usr/local/qte-x86
export PATH=$QTEDIR/bin:$QT4DIR/bin:$PATH
export LD_LIBRARY_PATH=$QT4DIR/lib:$QTEDIR/lib:$LD_LIBRARY_PATH
保存退出

B:针对 qte for arm的

vi setenv-arm
编辑完后的内容如下:
export QT4DIR=/usr/local/qt-x86
export QTEDIR=/usr/local/qte-arm
export PATH=$QTEDIR/bin:$QT4DIR/bin:$PATH
export LD_LIBRARY_PATH=$QT4DIR/lib:$QTEDIR/lib:$LD_LIBRARY_PATH
保存并退出

要运行哪个版本就设置相应的环境,如要在主机上用qvfb ,就用 运行:. setenv-x86  (注意点后面有个空格)


5.编译过程中可能出现的错误和部分解决办法  

1):error

/usr/bin/ld: cannot find -lXtst
collect2: ld returned 1 exit status
make: *** [../../bin/qvfb] Error 1
解决:
sudo apt-get install libxtst-dev
http://blog.csdn.net/babyfacer/archive/2009/01/05/3711988.aspx

2):error

qtiffhandler.cpp:48:20: error: tiffio.h: No such file or directory

解决:cp /usr/local/qt4.6-x86/src/3rdparty/libtiff/libtiff/tiffio.h  /usr/local/qt4.6-x86/src/plugins/imageformats/tiff

3):error

In file included from qtiffhandler.cpp:48:
tiffio.h:33:18: error: tiff.h: No such file or directory

解决:cp /usr/local/qt4.6-x86/src/3rdparty/libtiff/libtiff/tiff.h  /usr/local/qt4.6-x86/src/plugins/imageformats/tiff

4):error

/usr/bin/ld: cannot find -ltiff

解决:apt-get install libtiff4-dev

5):error

/usr/bin/ld: cannot find -lQtUiTools
collect2: ld returned 1 exit status

悬而未决

6):error

QFontEngineFT::init(QFontEngine::FaceId, bool, QFontEngineFT::GlyphFormat)':
text/qfontengine_ft.cpp:696: warning: initialization to `int' from `qreal'
text/qfontengine_ft.cpp:696: warning: argument to `int' from `qreal'
{standard input}: Assembler messages:
{standard input}:1587: Error: register or shift expression expected -- `orr r3,r2,lsl#16'
{standard input}:1597: Error: register or shift expression expected -- `orr r2,r3,lsl#16'
{standard input}:3206: Error: register or shift expression expected -- `orr r3,r1,lsl#16'
{standard input}:3219: Error: register or shift expression expected -- `orr r3,ip,lsl#16'

解决:参考http://www.qtcn.org/bbs/read.php?tid=24692&fpage=0&toread=&page=1  守望者的临时解决方案:
To fix this issue patch /src/3rdparty/freetype/include/freetype/config/ftconfig.h Line 330.

(原来的为)  "orr %0, %2, lsl #16\n\t" /* %0 |= %2 << 16 */
(修改后为)  "orr %0, %0, %2, lsl #16\n\t" /* %0 |= %2 << 16 */

7):error

In file included from ./config.h:26,
from ../JavaScriptCore/pcre/pcre_compile.cpp:44:
../JavaScriptCore/wtf/Platform.h:338:6: #error "Not supported ARM architecture"
make[1]: *** [obj/release/pcre_compile.o] Error 1
make[1]: Leaving directory `/usr/local/qte4.6-arm/src/3rdparty/webkit/WebCore'
make: *** [sub-webkit-make_default-ordered] Error 2

解决:参考http://www.qtcentre.org/threads/26712-error-error-Not-supported-ARM-architecture  回帖
转引如下:
Maybe it's late for a reply but I have a detailed solution to the problem.
Like what people have mentioned in the replies,
you have to specify the target architecture.

Check /3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h
You will find the defintions for the architectures there.

such as , "__ARM_ARCH_5TEJ__" (this is for ARMv5)

add a line in your ./configure parameters, such as "-D__ARM_ARCH_5TEJ__" , or whichever architecture definition that suits the platform.

The compile problems to do with javascriptcore should go away.
It happened to work for me, at least for qt 4.5.1 and 4.6.2, for ARMv5 architecture.


Hope this helps.

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

Antony

PS:你一定会发现这么多版本的qmake引用起来非常不方便,其实只要做个简单的一个命令就可以让这种烦恼不再!

[root@localhost /]# cd /usr/local/Trolltech/qte4.6.3-arm/bin

[root@localhost bin]# ln -s qmake qmake-qte

[root@localhost bin]# qmake-qte -v

QMake version 2.01a

Using Qt version 4.6.3 in /usr/local/Trolltech/qte4.6.3-arm/lib

[root@localhost bin]#

将路径/usr/local/Trolltech/qte4.6.3-arm/bin添加到.bashrc中,手动生成Makefile时就可以直接使用qmake-qte了。其他类似。

上一篇:
下一篇:
  评论这张
 
阅读(1094)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017