• 5640阅读
  • 8回复

一个QT的问题 [复制链接]

上一主题 下一主题
离线lvjinwen
 

只看楼主 正序阅读 楼主  发表于: 2008-05-07
— 本帖被 XChinux 执行加亮操作(2008-05-07) —
请问为什么我在QT-2.3.2中的designer里做的一个东西,用tmake编译时总会出现如下错误,是不是需要自己添加什么呢?还是我的编译器没装好呢?

[root@localhost a]# make

Makefile:120: warning: overriding commands for target `moc_a.cpp'
Makefile:117: warning: ignoring old commands for target `moc_a.cpp'
arm-linux-g++ -o a a.o main.o a.o moc_a.o moc_a.o -L/usr/local/arm/3.3.2/lib -
L/usr/lvjinwen/qt/qt-2.3.7/lib -lm -lqte
a.o(.text+0x0): In function `a::a[not-in-charge](QWidget*, char const*, unsigned
)':
: multiple definition of `a::a[not-in-charge](QWidget*, char const*, unsigned)'
a.o(.text+0x0): first defined here
a.o(.text+0x528): In function `a::a[in-charge](QWidget*, char const*, unsigned)'
:
: multiple definition of `a::a[in-charge](QWidget*, char const*, unsigned)'
a.o(.text+0x528): first defined here
a.o(.text+0xa50): In function `a::~a [not-in-charge]()':
: multiple definition of `a::~a [not-in-charge]()'
a.o(.text+0xa50): first defined here
a.o(.text+0xa70): In function `a::~a [in-charge]()':
: multiple definition of `a::~a [in-charge]()'
a.o(.text+0xa70): first defined here
a.o(.text+0xa90): In function `a::~a [in-charge deleting]()':
: multiple definition of `a::~a [in-charge deleting]()'
a.o(.text+0xa90): first defined here
moc_a.o(.text+0x0): In function `a::className() const':
: multiple definition of `a::className() const'
moc_a.o(.text+0x0): first defined here
moc_a.o(.bss+0x0): multiple definition of `a::metaObj'
moc_a.o(.bss+0x0): first defined here
moc_a.o(.text+0xc): In function `a::initMetaObject()':
: multiple definition of `a::initMetaObject()'
moc_a.o(.text+0xc): first defined here
moc_a.o(.text+0xf0): In function `a::staticMetaObject()':
: multiple definition of `a::staticMetaObject()'
moc_a.o(.text+0xf0): first defined here
moc_a.o(.text+0x70): In function `a::tr(char const*)':
: multiple definition of `a::tr(char const*)'
moc_a.o(.text+0x70): first defined here
moc_a.o(.text+0xb0): In function `a::tr(char const*, char const*)':
: multiple definition of `a::tr(char const*, char const*)'
moc_a.o(.text+0xb0): first defined here
collect2: ld returned 1 exit status
make: *** [a] Error 1
[root@localhost a]#
离线giscn
只看该作者 8楼 发表于: 2008-05-08
老版本是interfaces? 现在的是forms += ....
ui当然要包括过去
http://nzt.spaces.live.com
离线lvjinwen

只看该作者 7楼 发表于: 2008-05-08
谢谢各位老师的解答,这个问题我已经解决了,问题出在我在progen -t app.t -o a.pro时,把a.ui放进去了,具体代码如下:
TEMPLATE                         = app
CONFIG        = qt warn_on release
HEADERS        = a.h
SOURCES        = a.cpp \
         main.cpp
INTERFACES    = a.ui
其中错误就是在INTERFACES    = a.ui这一句,应该把a.ui去调,希望跟我一样的初学者不要犯我这样的错误
离线lvjinwen

只看该作者 6楼 发表于: 2008-05-07
这是main.cpp的代码:
#include <qapplication.h>

#include "a.h"
int main(int argc,char **argv)
{
 
  QApplication app(argc,argv);
  a b;
 
  app.setMainWidget(&b);
 
  b.show();
  return app.exec();
}
离线傻猫
只看该作者 5楼 发表于: 2008-05-07
designer生成的ui 可以用uic生成.h文件的,可以直接用,不过只能实现简单的功能吧,最好继承下

你把代码贴main的cpp贴上来看看吧
-------------------------------
不常在
有事短消息或者到我blog讨论http://hi.baidu.com/ning_cat
已经没用qt作开发了。。。:-(
离线lvjinwen

只看该作者 4楼 发表于: 2008-05-07
我有自己写一个MAIN。CPP文件,继承生成的类
离线lzian
只看该作者 3楼 发表于: 2008-05-07
designer生成的代码不能直接用,要重新写个类,继承designer
离线lvjinwen

只看该作者 2楼 发表于: 2008-05-07
我这是用QT Designer自动生成的,代码没改过,然后编译,是不是QT Designer生成的代码要我们添加声明过的函数才能编译成功呢?还是因为我的编译器装得有问题?
离线lzian
只看该作者 1楼 发表于: 2008-05-07
可能是你的程序写错了,
错误里指出你多次定义了结构和析构函数,或者你声明了但没定义
快速回复
限100 字节
 
上一个 下一个