首页| 论坛| 消息

标题:还是QT/E编译HELLO问题(for arm)!
作者:戒三
日期:2006-06-02 17:41
内容:

昨天发贴解决了在PC机上编译examples的问题,今天想把例子编译成for ARM,格式,所以就按照说明上的配置(如下,应该该是没什么问题的,但是配置我进入ARM-QTOPIA里面的HELLO,make 一下,但是同不过(错误如下),并且我也把LINK改为ARM-LINUX-G++,请高手指点一下.
echo yes | ./configure -static -no-xft -no-opengl -no-sm
make -C src/moc
export QTDIR=$PWD/qt
export QPEDIR=$PWD/qtopia
export TMAKEDIR=$PWD/tmake
export TMAKEPATH=$TMAKEDIR/lib/qws/linux-arm-g++
export PATH=$QTDIR/bin:$QPEDIR/bin:$TMAKEDIR/bin:$PATH
cd qt
make clean
cp ../qtopia/src/qt/qconfig-qpe.h src/tools/
(echo yes ; echo no) | ./configure -platform linux-arm-g++-qconfig qpe -depths 16,24,32
检了点重要的贴上.
/friendly-arm/x86-qtopia/qtopia/lib/libqpe.so: could not read symbols: Invalid operation
collect2: ld returned 1 exit status
make: *** [/friendly-arm/x86-qtopia/qtopia/bin/hello] Error 1
# echo $TMAKEPATH
/friendly-arm/x86-qtopia/tmake/lib/qws/linux-arm-g++


#1 [vera 06-02 20:38]
你不能直接MAKE,我用的也是友善的板子,他们好象偷了点懒,在/x86-qtopia下的hello文件夹中的东西和/arm-qtopia下hello文件夹中的东西是一样的(他们只是拷贝了一下),
因此/arm-qtopia下hello文件夹里的.o文件都是用linux-generic-g++编译的,而MAKE时又用linux-arm-g++,编译器当然不会认,因此报错:could not read symbols
以上是个人理解哈, 不对的地方还请指教
你可以把/arm-qtopia下hello文件夹备份一下放到别处,重新生成一个hello文件夹,里面只放.cpp .pro .h文件。在TMAKEPATH=$TMAKEDIR/lib/qws/linux-arm-g++的前提下
#tmake hello.pro >> Makefile //在hello文件夹中生成Makefile
#make
#2 [vera 06-02 20:43]
我QQ83317422,加我嘎。也是前不久才搞定的,有问题可以一起探讨
#3 [戒三 06-03 18:14]
楼上的说的解决办法没效果,其实我用make clean 就把中间生成的 .O文件删除了,我那出问题是不能读/friendly-arm/x86-qtopia/qtopia/lib/libqpe.so: could not read symbols: Invalid operation
,还望高手指点一下!
#4 [戒三 06-03 18:23]
我进ARM和X86文件夹的QTOPIA/LIB
# file libqpe.so
libqpe.so: symbolic link to libqpe.so.1.5.2
两者结果是一样的,我把MAKEFIEL文件贴出,谁遇到过同样的问题.
CC = arm-linux-gcc
CXX = arm-linux-g++
CFLAGS= -pipe -Wall -W -O2 -DNO_DEBUG
CXXFLAGS= -pipe -DQWS -fno-exceptions -fno-rtti -Wall -W -O2 -DNO_DEBUG
INCPATH = -I /friendly-arm/arm-qtopia/qt/include -I/friendly-arm/arm-qtopia/qtopia/include
LINK = arm-linux-g++
LFLAGS=
LIBS = $(SUBLIBS) -L$(QPEDIR)/lib -L$(QTDIR)/lib -lm -lqpe -lqtopia -lqte
MOC = $(QTDIR)/bin/moc
UIC = $(QTDIR)/bin/uic
其中INCPATH我改过,原来是-I /QTDIR/include -I /QPEDIR,改前改后问题一样.
环境参数为:
OLDPWD=/friendly-arm/arm-qtopia
QTDIR=/friendly-arm/x86-qtopia/qt
TMAKEPATH=/friendly-arm/x86-qtopia/tmake/lib/qws/linux-arm-g++
PATH=/friendly-arm/x86-qtopia/qt/bin:/friendly-arm/x86-qtopia/qtopia/bin:/friendly-arm/x86-qtopia/tmake/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/arm/2.95.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin
PWD=/friendly-arm/arm-qtopia/hello
XMODIFIERS=@im=Chinput
LANG=zh_CN.GB18030
LAMHELPFILE=/etc/lam/lam-helpfile
GDMSESSION=Default
SSH_ASKPASS=/usr/libexec/openssh/gnome-ssh-askpass
HOME=/root
SHLVL=2
XPVM_ROOT=/usr/share/pvm3/xpvm
LANGUAGE=zh_CN.GB18030:zh_CN.GB2312:zh_CN
GNOME_DESKTOP_SESSION_ID=Default
BASH_ENV=/root/.bashrc
LOGNAME=root
LESSOPEN=|/usr/bin/lesspipe.sh %s
QPEDIR=/friendly-arm/x86-qtopia/qtopia
DISPLAY=:0.0
G_BROKEN_FILENAMES=1
TMAKEDIR=/friendly-arm/x86-qtopia/tmake
实在不知道是什么原因!
#5 [戒三 06-05 17:37]
问题已经解决,还是环境没设置好,只需把/X86-QTOPIA下的 set-env复制到/ARMQTOPIA,更改编译器为LINUX-ARM-G++!感谢Vera!

回复 发表
主题 版块