标题:qtopiacore/qt/src/corelib/arch/qatomic_i386.h:128: 错误:‘asm’ 中不可能的约束
作者:leasia
日期:2009-08-02 20:46
内容:
交叉编译arm平台的qt-extended-4.4.3时遇到错误:qtopiacore/qt/src/corelib/arch/qatomic_i386.h:128: 错误:‘asm’ 中不可能的约束;请教大家这个错误是什么原因造成的。我用的交叉编译器是基于uclibc的。
#1 [shiroki 08-03 13:23]
configure的参数?
#2 [leasia 08-03 16:01]
$QTOPIA_DEPOT_PATH/configure -xplatform linux-arm-g++ -arch arm -release -displaysizes 480x272 -ui-type home -extra-qt-config "-qt-zlib -qt-gif -qt-libpng -qt-libmng -qt-libjpeg" -extra-qt-embedded-config "-embedded arm" -prefix /opt/Qtopia -verbose -build-qt
这个是configure的参数,有请知道的朋友帮忙,谢谢楼上的!
#3 [shiroki 08-04 10:01]
我按你的configure参数去编译, 除了去掉最后一个build-qt其他都一样, 但并没有遇到你的错误阿。
是不是你的源码树曾经做过x86的build, 然后在原有的基础上又交叉编译? 可能这样会有一些文件冲突, 最好是做shadow build或用干净的源码编译
#4 [leasia 08-04 14:56]
首先谢谢版主的友好帮助,我是才弄qt的,所以问题比较多。
如果我不加build-qt参数时,会提示:Qt Extended requires Qt 4.3 or higher to be installed.You must have qmake in your PATH.
此时我想应该加上前面编译安装好的qt embedded for arm的路径,设置了PATH、QTEDIR、QTDIR、LD_LIBRARY_PATH等环境变量,但是出现错误:
Project MESSAGE: QT_PREFIX=/usr/local/Trolltech/QtEmbedded-4.5.0-arm
Project MESSAGE: QT_LIBS=/usr/local/Trolltech/QtEmbedded-4.5.0-arm/lib
Project MESSAGE: QT_BINS=/usr/local/Trolltech/QtEmbedded-4.5.0-arm/bin
Project MESSAGE: QT_INCS=/usr/local/Trolltech/QtEmbedded-4.5.0-arm/include
Project ERROR: Cannot use Qt Embedded as the system Qt!
有些地方不是很明白,所以有几个问题想请教:
1、build-qt是配置是否编译qt extended中的qtopiacore吧?如果不加此参数时,应该利用外部的qte库吧,怎么设置编译环境?
2、”Cannot use Qt Embedded as the system Qt!“中的system QT指的是什么?很明显我前面的做法不对,但是我在本机用apt-get install qt4-dev-tool后也是不对的。
谢谢!
#5 [gvim 08-04 21:31]
你是在编译qt-extended吧, ./configure 的时候需要自己编写 device 的profile的。
你可以参考我这个blog, 看看你的src/corelib/arch/qatomic_arch.h文件中arm的宏为什么没有。
http://www.cuteqt.com/blog/?p=289
Qt经典出错信息之qatomic_i386.h error: impossible constraint in ‘asm’