Bug 153734 - kbytearrayedit build problem Undefined interface
Summary: kbytearrayedit build problem Undefined interface
Status: RESOLVED NOT A BUG
Alias: None
Product: buildsystem
Classification: Developer tools
Component: KDE4 (cmake) (show other bugs)
Version: unspecified
Platform: Compiled Sources Linux
: NOR normal
Target Milestone: ---
Assignee: Friedrich W. H. Kossebau
URL:
Keywords:
: 153709 (view as bug list)
Depends on:
Blocks:
 
Reported: 2007-12-09 17:28 UTC by Treeve Jelbert
Modified: 2007-12-15 16:18 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:


Attachments
full compile log (4.23 KB, application/x-bzip2)
2007-12-09 17:29 UTC, Treeve Jelbert
Details
verbose build log (8.07 KB, application/x-bzip2)
2007-12-10 18:48 UTC, Treeve Jelbert
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Treeve Jelbert 2007-12-09 17:28:47 UTC
Version:           3.96.2 (using KDE KDE 3.96.0)
Installed from:    Compiled From Sources
Compiler:          gcc-4.2.2 
OS:                Linux

when trying to compile kdeutils-3.96.2, I get the following error:


[ 15%] Generating kbytearrayedit_automoc.cpp
Generating kbytearrayedit.moc
/usr/src/kdeutils-3.96.2/khexedit/parts/kbytesedit/kbytearrayedit.h:49: Error: Undefined interface
kde4automoc: process for /usr/src/kdeutils-3.96.2/build/khexedit/parts/kbytesedit/kbytearrayedit.moc failed: Unknown error
pid to wait for: 0
processes in queue: 0
returning failed..
make[2]: *** [khexedit/parts/kbytesedit/kbytearrayedit_automoc.cpp] Error 1
Comment 1 Treeve Jelbert 2007-12-09 17:29:27 UTC
Created attachment 22431 [details]
full compile log
Comment 2 Friedrich W. H. Kossebau 2007-12-09 18:03:03 UTC
Hi Treeve, thanks for the report. Seems like your KDE4 install is broken, you also miss at least another file from kdelibs/interfaces.
See in the log for
/usr/src/kdeutils-3.96.2/kregexpeditor/kregexpeditorgui.h:40: Error: Undefined interface

Could you report the outcome of
  ls /opt/include/khexedit/ /opt/include/kregexpeditorinterface.h 
please?

Both dir and file should be installed. Just checked, they are with a very recent version of kdelibs (3.96.3). So I cannot confirm your bug. Please reinstall kdelibs, try again and tell if it works, thanks.
Comment 3 Treeve Jelbert 2007-12-09 18:45:53 UTC
$ ls -l /opt/include/khexedit/
total 28
-rw-r--r-- 1 root root 6685 2007-12-03 20:48 byteseditinterface.h
-rw-r--r-- 1 root root 3656 2007-12-03 20:48 charcolumninterface.h
-rw-r--r-- 1 root root 3191 2007-12-03 20:48 clipboardinterface.h
-rw-r--r-- 1 root root 5543 2007-12-03 20:48 valuecolumninterface.h
-rw-r--r-- 1 root root 2582 2007-12-03 20:48 zoominterface.h

$ ls -l /opt/include/kregexpeditorinterface.h
-rw-r--r-- 1 root root 5376 2007-12-03 20:48 /opt/include/kregexpeditorinterface.h

compile still fails.  I will try again with 3.97 in a couple of days time


by the way, I also have kdelibs-3.5.8, which installs to /usr/include, on this. machine.  Could it be a problem of finding the wrong version of the include files?
Comment 4 Friedrich W. H. Kossebau 2007-12-09 19:41:35 UTC
So the needed files are in place. Well. And it would surprise me if the include files only get mixed up for these interface classes.
Please check with "make VERBOSE=1" in what order the include files and which are passed to the compiler.
Comment 5 Treeve Jelbert 2007-12-10 18:48:09 UTC
Created attachment 22455 [details]
verbose build log

could the fact that this is a dual processor machine make any difference?
Comment 6 Friedrich W. H. Kossebau 2007-12-11 00:19:22 UTC
*** Bug 153709 has been marked as a duplicate of this bug. ***
Comment 7 Friedrich W. H. Kossebau 2007-12-11 00:21:20 UTC
No idea how a dual processor might be in they way. It looks that the moc (and not the compiler) just misses the right header files.
I see from googling your are struggling for longer with this problem. Thanks for the other log. It is just that the part about the moc call is not verbose enough. kde4automoc is too silent by nature. Everything else builds, so the other include files are found by the compiler.

Please find the file kregexpeditorgui_automoc.cpp.files in the build dir and report the lines behind "MOC_INCLUDES:". Is /opt/include/ there as well?
Comment 8 Rolf Eike Beer 2007-12-11 11:23:00 UTC
I sometimes had problems with moc files not being updated (I don't find the bug number). This might help:

make clean && rm *.moc && make
Comment 9 Treeve Jelbert 2007-12-15 11:38:03 UTC
less kregexpeditor/kregexpeditorgui_automoc.cpp.files

MOC_INCLUDES:
/usr/src/kdeutils-3.97.0;/usr/src/kdeutils-3.97.0/build;
/usr/include;/usr/include/Qt;/usr/share/qt4/mkspecs/default;
/usr/include/QtCore;/usr/include/QtGui;/usr/include/Qt3Support;
/usr/include/QtAssistant;/usr/include/QtDesigner;/usr/include/QtNetwork;
/usr/include/QtOpenGL;/usr/include/QtSql;/usr/include/QtXml;
/usr/include/QtSvg;/usr/include/QtScript;/usr/include/QtUiTools;
/usr/include/QtTest;/usr/include/QtDBus;
/opt/include;/opt/include/KDE;
/usr/src/kdeutils-3.97.0/kregexpeditor/KWidgetStreamer;
/usr/src/kdeutils-3.97.0/kregexpeditor/KMultiFormListBox



does the fact that /usr/include comes before /opt/include make any difference?

I manually moved /usr/include to be the last entry and everything compiles oK!
Comment 10 Friedrich W. H. Kossebau 2007-12-15 16:18:28 UTC
Yes, so it is a problem with the wrong headers. Sorry, looks like your setup doesn't work, that is, if Qt4 top include dir == KDE3 top include dir. No idea, if KDE3 headers should be directly in /usr/include anyway, will clash with any other version, better to have them in a separate dir, e.g. /usr/include/kde3.
Still I wonder why the /usr/include doesn't get passed to the compiler also for the examples in your log file. Here cmake seems to be smarter than it is done in FindQt4.cmake. There simply all include dirs used in the whole module are passed as include dirs for every file to be moc'ed. Pretty broad approach. But then these might also be the same for some source file.
Cmp.  MACRO (QT4_GET_MOC_INC_DIRS _moc_INC_DIRS)

Were there no other problems for your build? There should have been. So closing as INVALID.