首页| 论坛| 消息

标题:【提问】有关qt程序在x11上开发好后,如何转到arm平台
作者:pmingj
日期:2005-11-10 11:47
内容:

我使用的系统是ret hat 9, qt版本是qt-x11-free-3.3.2 , qte版本是是qt-2.3.7。
现在我在xwindows下使用qt-x11-free-3.3.2的designer,设计好了一个图形界面,其目录下有以下文件:
$ ls
form1.uiform1.ui.hmain.cppmetirc.pro
运行:
qmake -o Makefile metirc.pro
make
后就生成了 metirc :
$ ls
form1.uiform1.ui.hmain.cppMakefilemetircmetirc.pro
运行metirc:
$ ./metric
就可以在xwindows下正常运行该程序。
接下来我要把该程序编译成arm的运行代码:
在.bashrc上修改了我的环境变量为QTE的环境:
PATH=$PATH:~/tmake-1.13/bin:/usr/local/arm/2.95.3/bin
#================================================================
QTDIR=~/qt-2.3.7
LD_LIBRARY_PATH=~/qt-2.3.7/lib:$LD_LIBRARY_PATH
TMAKEPATH=~/tmake-1.13/lib/qws/linux-arm-g++
#-------------------------------------------------------------------
#QTDIR=~/qt-x11-free-3.3.2
#LD_LIBRARY_PATH=~/qt-x11-free-3.3.2/lib:$LD_LIBRARY_PATH
#TMAKEPATH=~/tmake-1.13/lib/linux-g++
#================================================================
exportQTDIR TMAKEPATH PATH LD_LIBRARY_PATH
重新登陆后回到原来的工程目录,执行:
$ tmake -o Makefile metric.pro
就会出现:
tmake error: metirc.pro:2: Syntax error
metric.pro 是qt-x11-free-3.3.2的designer生成的,其内容:
SOURCES += main.cpp
unix {
UI_DIR = .ui
MOC_DIR = .moc
OBJECTS_DIR = .obj
}
FORMS = form1.ui
TEMPLATE =app
CONFIG+= qt warn_on release
LANGUAGE = C++
如果删掉designer生成的metric.pro,使用qmake -project来生成metric.pro的话:
$ qmake -project
$ tmake -o Makefile metric.pro
就可以生成Makefile,可是执行make生成arm的执行代码就会失败:
$ make
/home/pmingj/qt-2.3.7/bin/uic form1.ui -o ./form1.h
/home/pmingj/qt-2.3.7/bin/uic: error while loading shared libraries: /home/pmingj/qt-2.3.7/lib/libqte.so.2: ELF file OS ABI invalid
make: *** Error ..


#1 [angusliu 11-10 12:32]
看上去,你好象还没有交叉编译QTE的库文件呀???
#2 [pmingj 11-10 13:44]
arm的qt/E运行库已经编译好的了。就在qt-2.3.7/lib下,名字叫libqte.so.2.3.7
$ file libqte.so.2.3.7
libqte.so.2.3.7: ELF 32-bit LSB shared object, ARM, version 1 (ARM), not stripped
#3 [doublezha 11-10 16:27]
你在从编译pc上的应用转到编译针对arm上的应用的过程中,有没有改编你的 QTEDIR路径阿,如果没有,你必须得把它改到指向那个交叉编译过的qt-2.3.7(qt-embedded-2.3.7).并在条件下指明PATH和LD_LIBRARY_PATH.试试看,一步步来.
#4 [pmingj 11-10 21:32]
QTDIR已经改成~/qt.2.3.7了才进行编译的,不行阿。
#5 [doublezha 11-11 15:14]
你把你的qt-x11版本换低一些的,qt/x11版本要比qt/E版本低,因为qt/X11的工具uic和designer生成的源文件会和qt/E的库一起编译连接,本着向前兼容,你要用个比qt/e-2。3。7版本低的qt/x11.试试吧,

<< 1 2 >> (1/2)

回复 发表
主题 版块