Discussion:
[qt-dev] Problems compiling corelib
Michael Holzapfel
2009-10-06 05:36:21 UTC
Permalink
Hi,

after getting the actual svn-code (207), i get the following error:

tmp/moc/debug-shared-debug/moc_qbuffer.cpp: In member function `virtual int
QBuffer::qt_metacall(QMetaObject::Call, int, void**)':
tmp/moc/debug-shared-debug/moc_qbuffer.cpp:66: error: `_q_emitSignals'
undeclared (first use this function)
tmp/moc/debug-shared-debug/moc_qbuffer.cpp:66: error: (Each undeclared
identifier is reported only once for each function it appears in.)
make[2]: *** [tmp\obj\debug-shared-debug\moc_qbuffer.obj] Error

Michael
Silvan Scherrer
2009-10-06 12:59:41 UTC
Permalink
Michael,

i built Qt several times till now, but i never saw that error.

could you give some more infos? what compiler and did you run
configure.cmd to build qmake?
and the right qmake is used to build Qt4?

regards
Silvan
Post by Michael Holzapfel
Hi,
tmp/moc/debug-shared-debug/moc_qbuffer.cpp: In member function
`virtual int
tmp/moc/debug-shared-debug/moc_qbuffer.cpp:66: error: `_q_emitSignals'
undeclared (first use this function)
tmp/moc/debug-shared-debug/moc_qbuffer.cpp:66: error: (Each undeclared
identifier is reported only once for each function it appears in.)
make[2]: *** [tmp\obj\debug-shared-debug\moc_qbuffer.obj] Error
Michael
---------------------------------------------------------------------
--
/Silvan Scherrer
AROA Informatik AG
Tel. +41 71 243 55 77
Fax +41 71 243 55 70
www.aroa.ch <http://www.aroa.ch> /
Michael Holzapfel
2009-10-06 20:51:08 UTC
Permalink
Post by Silvan Scherrer
Michael,
i built Qt several times till now, but i never saw that error.
could you give some more infos? what compiler and did you run
configure.cmd to build qmake?
That was the right hint. 'make clean' after resync needs to be done in
src and in qmake-directory. I'd really appreciate a toplevel makefile.

BTW, I use the following qtenv.cmd to build qt4:
mode 90,40
set
PATH=E:\work\qt\qt4src\bin;E:\work\qt\usr\bin;E:\EMACS\20.6\BIN;.;C:\ECS\BIN;C:\OS2;C:\OS2\SYSTEM;C:\MPTN\BIN;C:\IBMCOM;C:\ECS\INSTALL\WARPIN;C:\TCPIP\BIN;C:\OS2;C:\OS2\SYSTEM;C:\OS2\INSTALL;C:\;C:\OS2\APPS;e:\smedley\usr\bin;e:\smedley\moztools;
set BEGINLIBPATH=E:\work\qt\qt4src\bin;
set EMXOMFLD_LINKER=wl.exe
set EMXOMFLD_TYPE=WLINK
SET C_INCLUDE_PATH=
SET CPLUS_INCLUDE_PATH=
SET LIBRARY_PATH=C:\OS2\DLL;C:\MPTN\DLL
SET LIB=
call e:\work\qt\usr\bin\gccenv.cmd e:\work\qt\usr WLINK
Post by Silvan Scherrer
and the right qmake is used to build Qt4?
It was qmake from older svn-builds.

Thanks for prompt answer.
Best regards
Michael
Dmitry A. Kuminov
2009-10-06 14:26:11 UTC
Permalink
Hello,
Post by Michael Holzapfel
Hi,
tmp/moc/debug-shared-debug/moc_qbuffer.cpp: In member function `virtual int
tmp/moc/debug-shared-debug/moc_qbuffer.cpp:66: error: `_q_emitSignals'
undeclared (first use this function)
tmp/moc/debug-shared-debug/moc_qbuffer.cpp:66: error: (Each undeclared
identifier is reported only once for each function it appears in.)
make[2]: *** [tmp\obj\debug-shared-debug\moc_qbuffer.obj] Error
Please delete tmp/moc/debug-shared-debug/moc_qbuffer.cpp and try again.
If that doesn't help, try to delete the full tmp directory, run
configure.cmd and build the whole thing again.

According to the code, looks like QT_NO_OBJECT gets defined for you, but
that's nonsense and shouldn't happen.

BTW, there is a regression in SVN that causes
"tmp/moc/debug-shared-debug/" instead of "tmp/moc/debug-shared/" to be
used, I'll fix it ASAP.
--
Keep cool,
dmik

* JID: dmik at jabber ru
Michael Holzapfel
2009-10-06 20:50:55 UTC
Permalink
Post by Dmitry A. Kuminov
Please delete tmp/moc/debug-shared-debug/moc_qbuffer.cpp and try again.
Did not help.
Post by Dmitry A. Kuminov
If that doesn't help, try to delete the full tmp directory, run
configure.cmd and build the whole thing again.
Did not help either. A new configure.cmd run is not followed by a new
build process for qmake.exe
Post by Dmitry A. Kuminov
According to the code, looks like QT_NO_OBJECT gets defined for you, but
that's nonsense and shouldn't happen.
Please read my answer to Silvan. I've used an outdated qmake.
Thanks for your work an the immediate answer.

Best regards
Michael
Dmitry A. Kuminov
2009-10-06 21:23:06 UTC
Permalink
Michael,
Post by Michael Holzapfel
Post by Dmitry A. Kuminov
If that doesn't help, try to delete the full tmp directory, run
configure.cmd and build the whole thing again.
Did not help either. A new configure.cmd run is not followed by a new
build process for qmake.exe
Actually, configure.cmd calls the build process for qmake.exe every time
it is successfully run up to the end. So if qmake.exe wasn't rebuilt,
then may be you had screwed up timestamps for some reason (or something
important is missing in the dependencies) -- to check it please remove
qmake.exe from $TREE/qmake/ and try to run configure.exe again, qmake
should be regenerated.

And yes, if you work with the SVN tree, it's a good practice to run
'make clean; make' in both $TREE/qmake and $TREE/src after each 'svn
update' to make sure any problems related to missed timestamps won't
touch you. Unfortunately, the qmake/make system cannot 100% guarantee
that everything is properly rebuilt otherwise (and you should be ready
to struggle with weird error messages like that in such case).

The top-level Makefile will appear soon but it won't save you from doing
'make clean' (though you will have to do it only once).
--
Keep cool,
dmik

* JID: dmik at jabber ru
Loading...