• 5832阅读
  • 8回复

[提问]:qt程序编译出错,是不是qt-embedded-2.3.7没有编译好啊?!!! [复制链接]

上一主题 下一主题
离线daidai666
 

只看楼主 倒序阅读 楼主  发表于: 2006-03-20
[提问]:qt程序编译出错,是不是qt-embedded-2.3.7没有编译好啊?!!!
在linux下编译qt程序时出错(换个程序也是同样错误),错误请见下面。用的是qt-2.3.2 for x11、qt-embedded2.3.7、tmake1.11。cross3.3.2交叉编译工具。是不是qt-2.3.7/bin/moc和qt-2.3.7/lib/libqte.so文件和设定的编译器不一致啊?是不是我编译qt-embedded2.3.7的方法不对啊?
我的编译设置是:
export QTDIR=/usr/local/src/qt-2.3.7
export LD_LIBRARY_PATH=$QTDIR/lib:/usr/local/src/qt/lib:$LD_LIBRARY_PATH
export PATH= /usr/local/arm/2.95.3/bin:$QTDIR/bin: /usr/local/src/qt/bin:$PATH
export TMAKEPATH="/usr/local/src/tmake-1.11/lib/qws/linux-arm-g++"
编译qt-embedded2.3.7的命令如下:
cp $QPEDIR/src/qt/qconfig-qpe.h /usr/local/src/qt-2.3.7/src/tools/
ln -s ../tmake-1.11 tmake
./configure –platform linux-arm-g++ -no-qvfb –no-opengl –qconfig qpe –depths 4,8,16,32
make –C src
编译qt程序的命令如下:
先在QT下编辑产生一个.ui文件
Uic –o gprs.h gprs.ui
Uic –o gprs.cpp –impl gprs.h gprs.ui
建立一个main.cpp文件
Progen –n gprs –o gprs.pro
Tmake –o Makefile gprs.pro
make

出现的错误如下:
moc_gprs.o(.text+0x18):in functio 'form1::initmetaobject(void)':
:multiple definition of 'form1::initmetaobject(void)'

moc_gprs.o(.rodata+0x1bo):undefined reference to 'QWidget::setkeycompression(bool)'
moc_gprs.o(.rodata+0x1b4):undefined reference to 'QWidget::setMicroFocusHint(int,int,int,int,bool)'
moc_gprs.o(.rodata+0x1b8):undefined reference to 'QDialog::accept(void)'
等等一系列类似的错误。
collect2:ld returned 1 exit status
make:***[gprs]error 1

麻烦各位高手帮我看看,这是怎么回事,是不是哪里有错误,应该怎么做?非常感谢!!
[ 此贴被XChinux在2006-03-20 19:41重新编辑 ]
离线pimpyan

只看该作者 1楼 发表于: 2006-03-21
第一个是出现重复定义:initmetaobject(void)
你仔细看一下自己的代码结构..有时候应该不会是真正的重复定义..可能共用头文件没有用#ifdef #endif之类的宏....
后面的错误说是没有找到这些结构或类的定义..也就是没有include其头文件...
如果你确定你的头文件已经include没错了..
那么检查一下LD_LIBRARY_PATH这个变量没有设置正确....自己的到$(LD_LIBRARY_PATH)目录下去看看究竟有没有你要的头文件...如果一个都没有...那么....
我不知道怎么回事了...
离线daidai666

只看该作者 2楼 发表于: 2006-03-22
谢谢,我的问题已经解决了!
离线daidai666

只看该作者 3楼 发表于: 2006-03-22
但是,我把自己编写的QT程序加载到QT文件系统中后,启动板子,出现如下信息:
qpe: error in loading shared libraries: libgcc_s.so.1: cannot open shared object file: No such file or directory
也就是系统没有运行起QTOPIA程序来,之后我自己把这个可执行文件下载到板子上,输入./hello,出现
./hello: error in loading shared libraries: libqte.so.2: cannot open shared object file: No such file or directory

麻烦各位高手帮我看看,这是怎么回事?万分火急!!!
离线youngki
只看该作者 4楼 发表于: 2006-03-28
可否先告知你的第一个问题是怎么解决的,
谢谢
知识和财富,只在流通中产生价值
离线linuzer

只看该作者 5楼 发表于: 2006-03-29
你可以用nfs将主机上的qt/embedded/lib挂到目标版上,设置一下LD_LIBRARY_PATH就可以了
离线nanawoaini
只看该作者 6楼 发表于: 2006-03-29
能说一下第一个问题是如何解决的吗
离线xiaobingking

只看该作者 7楼 发表于: 2006-04-05
可否先告知你的第一个问题是怎么解决的,
谢谢
离线daidai666

只看该作者 8楼 发表于: 2006-04-10
我执行了一下make clean,就可以了
快速回复
限100 字节
 
上一个 下一个