QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 903|回复: 1

qt的一个编译问题。

[复制链接]
发表于 2005-9-8 12:03:24 | 显示全部楼层 |阅读模式
错误信息如下:
arm-linux-g++  -o java main.o javawindow.o midpmain.o moc_javawindow.o  -lm -L../ssl/libarm -L/opt/vobs/qt/qtopia/qtopia-source-2.0.0/../../../quasar/lib -Wl,-rpath-link,/opt/vobs/qt/qtopia/qtopia-source-2.0.0/../../../quasar/armlib -L../mint/makemidp -L../AMSOTA/amsotalib -L/opt/vobs/qt/qtopia/qtopia-source-2.0.0/../../../quar/kernellib -lqpe -lqtopia -lqte -lqtopia2 -lpthread -ldeltassl -lmidp -lAMSOTA -ldeltassl
../mint/makemidp/libmidp.a(moc_phonesound.o): In function `PhoneSound::staticMetaObject(void)':
moc_phonesound.o(.text+0x1d: undefined reference to `QMetaObject::new_metaobject(char const *, char const *, QMetaData *, int, QMetaData *, int, QMetaProperty *, int, QMetaEnum *, int, QClassInfo *, int)'
../mint/makemidp/libmidp.a(moc_audiodevice.o): In function `AudioDevice::staticMetaObject(void)':
moc_audiodevice.o(.text+0x42c): undefined reference to `QMetaObject::new_metaobject(char const *, char const *, QMetaData *, int, QMetaData *, int, QMetaProperty *, int, QMetaEnum *, int, QClassInfo *, int)'
collect2: ld returned 1 exit status
make: *** [java] Error 1

我已经载google上搜索过了,没有找到有用的解答。
出问题的phonesound.o,之前出现过一个错误:“undefined reference phonesound virtual table”,我在google上看到的解决办法是要生成moc文件先。于是我手动生成了moc_phonesound.cpp。直接在目录下面使用“$QTDIR/bin/moc phonesound.h -o moc_phonesound.cpp”。这样之后,我全部clean之后,在继续编译。然后就出现了上面的问题。

我已经检查过lib的路径,qt的环境变量,都是没有问题的。而且在上面的错误信息中,可以看到由moc_javawindow.o,这个文件里面包含有同样的new_metaobject..这个函数,但是他没有报错。

请各位帮帮忙,非常感谢~!
 楼主| 发表于 2005-9-8 15:13:36 | 显示全部楼层
问题解决了,我应该在连接的那个目录下,在连接之前生成相应的moc文件,并编译。

而不是在编译libmidp.o的时候把moc文件编译进去。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-3 04:18 , Processed in 0.039504 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表