qtopia-2.2.0 make overriding commands --- 问题解决

来源:互联网 发布:淘宝上的装修靠谱吗 编辑:程序博客网 时间:2024/06/05 18:56


没注意看文字,其实 天嵌科技 已经标明了 “注意重复出现” 的问题,只是自己没有注意。


今天按照 天嵌的 qtopia-2.2.0 制作 QT 应用程序,

按照手册:

tmake -o Makefile second.pro
生成 Makefile 文件 . 如下:

############################################################################## Makefile for building second# Generated by tmake at 17:08, 2013/04/19#     Project: second#    Template: app#################################################################################### Compiler, tools and optionsCC=gccCXX=g++CFLAGS=-pipe -Wall -W -O2 -DNO_DEBUGCXXFLAGS=-pipe -DQWS -fno-exceptions -fno-rtti -Wall -W -O2 -DNO_DEBUGINCPATH=-I$(QTDIR)/include -I$(QPEDIR)/includeLINK=g++LFLAGS=LIBS=$(SUBLIBS) -L$(QPEDIR)/lib -L$(QTDIR)/lib -lqpe -lqtopia -lqteMOC=$(QTDIR)/bin/mocUIC=$(QTDIR)/bin/uicTAR=tar -cfGZIP=gzip -9f####### FilesHEADERS =second.hSOURCES =main.cpp \second.cppOBJECTS =main.o \second.o \second.oINTERFACES =second.uiUICDECLS =second.hUICIMPLS =second.cppSRCMOC=moc_second.cpp \moc_second.cppOBJMOC=moc_second.o \moc_second.oDIST=TARGET=$(QPEDIR)/image/opt/Qtopia/bin/secondDESKTOP =$(QPEDIR)/image/opt/Qtopia/apps/EmbedSky/second.desktopICON=$(QPEDIR)/image/opt/Qtopia/pics/second.pngINTERFACE_DECL_PATH = .####### Implicit rules.SUFFIXES: .cpp .cxx .cc .C .c.cpp.o:$(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<.cxx.o:$(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<.cc.o:$(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<.C.o:$(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<.c.o:$(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<####### Build rulesall: $(TARGET)cp -f second.desktop $(DESKTOP)cp -f second.png $(ICON)$(TARGET): $(UICDECLS) $(OBJECTS) $(OBJMOC) $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJMOC) $(LIBS)moc: $(SRCMOC)tmake: MakefileMakefile: second.protmake second.pro -o Makefiledist:$(TAR) second.tar second.pro $(SOURCES) $(HEADERS) $(INTERFACES) $(DIST)$(GZIP) second.tarclean:-rm -f $(OBJECTS) $(OBJMOC) $(DESKTOP) $(ICON) $(TARGET)-rm -f *~ core####### Sub-libraries###### Combined headers####### Compilemain.o: main.cpp \second.h \/opt/EmbedSky/Qte/x86-qtopia-2.2.0/qtopia/include/qtopia/qpeapplication.hsecond.o: second.cpp \second.h \second.uisecond.h: second.ui$(UIC) second.ui -o $(INTERFACE_DECL_PATH)/second.hsecond.cpp: second.ui$(UIC) second.ui -i second.h -o second.cppsecond.o: second.cpp \second.h \second.uimoc_second.o: moc_second.cpp \second.hmoc_second.o: moc_second.cpp \second.hmoc_second.cpp: second.h$(MOC) second.h -o moc_second.cppmoc_second.cpp: second.h$(MOC) second.h -o moc_second.cpp


接着 make :

[root@localhost second]# makeMakefile:121: warning: overriding commands for target `moc_second.cpp'Makefile:118: warning: ignoring old commands for target `moc_second.cpp'/opt/EmbedSky/Qte/x86-qtopia-2.2.0/qt2/bin/uic second.ui -o ./second.hg++ -c -pipe -DQWS -fno-exceptions -fno-rtti -Wall -W -O2 -DNO_DEBUG -I/opt/EmbedSky/Qte/x86-qtopia-2.2.0/qt2/include -I/opt/EmbedSky/Qte/x86-qtopia-2.2.0/qtopia/include -o main.o main.cpp/opt/EmbedSky/Qte/x86-qtopia-2.2.0/qt2/include/qdatetime.h:51: warning: 'class QDate' has virtual functions but non-virtual destructor/opt/EmbedSky/Qte/x86-qtopia-2.2.0/qtopia/include/qtopia/../../src/libraries/qtopia/qcom.h:88: warning: 'struct QUnknownInterface' has virtual functions but non-virtual destructor/opt/EmbedSky/Qte/x86-qtopia-2.2.0/qtopia/include/qtopia/../../src/libraries/qtopia/qcom.h:100: warning: 'struct QLibraryInterface' has virtual functions but non-virtual destructor/opt/EmbedSky/Qte/x86-qtopia-2.2.0/qtopia/include/qtopia/../../src/libraries/qtopia/applicationinterface.h:49: warning: 'struct ApplicationInterface' has virtual functions but non-virtual destructor/opt/EmbedSky/Qte/x86-qtopia-2.2.0/qt2/bin/uic second.ui -i second.h -o second.cppg++ -c -pipe -DQWS -fno-exceptions -fno-rtti -Wall -W -O2 -DNO_DEBUG -I/opt/EmbedSky/Qte/x86-qtopia-2.2.0/qt2/include -I/opt/EmbedSky/Qte/x86-qtopia-2.2.0/qtopia/include -o second.o second.cpp/opt/EmbedSky/Qte/x86-qtopia-2.2.0/qt2/include/qtooltip.h:87: warning: 'class QToolTip' has virtual functions but non-virtual destructor/opt/EmbedSky/Qte/x86-qtopia-2.2.0/qt2/bin/moc second.h -o moc_second.cppg++ -c -pipe -DQWS -fno-exceptions -fno-rtti -Wall -W -O2 -DNO_DEBUG -I/opt/EmbedSky/Qte/x86-qtopia-2.2.0/qt2/include -I/opt/EmbedSky/Qte/x86-qtopia-2.2.0/qtopia/include -o moc_second.o moc_second.cppg++  -o second main.o second.o second.o moc_second.o moc_second.o  -L/opt/EmbedSky/Qte/x86-qtopia-2.2.0/qtopia/lib -L/opt/EmbedSky/Qte/x86-qtopia-2.2.0/qt2/lib -lqpe -lqtopia -lqtesecond.o: In function `second::user_button()':second.cpp:(.text+0x0): multiple definition of `second::user_button()'second.o:second.cpp:(.text+0x0): first defined heresecond.o: In function `second::~second()':second.cpp:(.text+0x10): multiple definition of `second::~second()'second.o:second.cpp:(.text+0x10): first defined heresecond.o: In function `second::~second()':second.cpp:(.text+0x40): multiple definition of `second::~second()'second.o:second.cpp:(.text+0x40): first defined heresecond.o: In function `second::~second()':second.cpp:(.text+0x60): multiple definition of `second::~second()'second.o:second.cpp:(.text+0x60): first defined heresecond.o: In function `second::event(QEvent*)':second.cpp:(.text+0x80): multiple definition of `second::event(QEvent*)'second.o:second.cpp:(.text+0x80): first defined heresecond.o: In function `second::second(QWidget*, char const*, unsigned int)':second.cpp:(.text+0x170): multiple definition of `second::second(QWidget*, char const*, unsigned int)'second.o:second.cpp:(.text+0x170): first defined heresecond.o: In function `second::second(QWidget*, char const*, unsigned int)':second.cpp:(.text+0x580): multiple definition of `second::second(QWidget*, char const*, unsigned int)'second.o:second.cpp:(.text+0x580): first defined heremoc_second.o: In function `second::className() const':moc_second.cpp:(.text+0x0): multiple definition of `second::className() const'moc_second.o:moc_second.cpp:(.text+0x0): first defined heremoc_second.o: In function `second::staticMetaObject()':moc_second.cpp:(.text+0x90): multiple definition of `second::staticMetaObject()'moc_second.o:moc_second.cpp:(.text+0x90): first defined heremoc_second.o:(.bss+0x0): multiple definition of `second::metaObj'moc_second.o:(.bss+0x0): first defined heremoc_second.o: In function `second::tr(char const*, char const*)':moc_second.cpp:(.text+0x170): multiple definition of `second::tr(char const*, char const*)'moc_second.o:moc_second.cpp:(.text+0x170): first defined heremoc_second.o: In function `second::tr(char const*)':moc_second.cpp:(.text+0x1b0): multiple definition of `second::tr(char const*)'moc_second.o:moc_second.cpp:(.text+0x1b0): first defined heremoc_second.o: In function `second::initMetaObject()':moc_second.cpp:(.text+0x1f0): multiple definition of `second::initMetaObject()'moc_second.o:moc_second.cpp:(.text+0x1f0): first defined herecollect2: ld returned 1 exit statusmake: *** [second] Error 1

出现了:overriding commands for target `moc_second.cpp'  的警告 ,即是  重复出现.

second.o:second.cpp:(.text+0x60): first defined here    说明被重复定义了.

查看 Makefile 文件:

OBJECTS =main.o \second.o \second.o

SRCMOC=moc_second.cpp \moc_second.cppOBJMOC=moc_second.o \moc_second.o

moc_second.o: moc_second.cpp \second.hmoc_second.o: moc_second.cpp \second.hmoc_second.o: moc_second.cpp \second.hmoc_second.cpp: second.h$(MOC) second.h -o moc_second.cppmoc_second.cpp: second.h$(MOC) second.h -o moc_second.cpp

发现很多的重复在里面.

后来去掉了这些重复的代码.

再 make . 

出现:make: *** No rule to make target`INTERFACES',

[root@localhost second]# makemake: *** No rule to make target `INTERFACES', needed by `/opt/EmbedSky/Qte/x86-qtopia-2.2.0/qtopia/image/opt/Qtopia/bin/second'.  Stop.
看提示信息是 Makefile 有错误.

查找到:INTERFACES:

OBJECTS =main.o \second.o \INTERFACES =second.ui

可以看到  second.o \  多了一个 \ .

将其删除,再 make.

[root@localhost second]# makeg++ -c -pipe -DQWS -fno-exceptions -fno-rtti -Wall -W -O2 -DNO_DEBUG -I/opt/EmbedSky/Qte/x86-qtopia-2.2.0/qt2/include -I/opt/EmbedSky/Qte/x86-qtopia-2.2.0/qtopia/include -o moc_second.o moc_second.cppg++  -o /opt/EmbedSky/Qte/x86-qtopia-2.2.0/qtopia/image/opt/Qtopia/bin/second main.o second.o  moc_second.o   -L/opt/EmbedSky/Qte/x86-qtopia-2.2.0/qtopia/lib -L/opt/EmbedSky/Qte/x86-qtopia-2.2.0/qt2/lib -lqpe -lqtopia -lqtecp -f second.desktop /opt/EmbedSky/Qte/x86-qtopia-2.2.0/qtopia/image/opt/Qtopia/apps/EmbedSky/second.desktopcp -f second.png /opt/EmbedSky/Qte/x86-qtopia-2.2.0/qtopia/image/opt/Qtopia/pics/second.png

成功了,生成了所需的文件.









原创粉丝点击