KDevelop 2.1.3 breaks during compilation on the ctagsdialog_impl.moc.cpp The error seems to be a parse error in the ctagsdialog_impl.h at line 23
I get the same error. List of use flags: USE="cups alsa ssl mozilla spell tcltk apm arts bonobo dga dvd evo gb gnome gtk gtkhtml jpeg kde mmx motif mozilla mysql ncurses odbc oggvorbis opengl pam pcmcia png postgres python readline ruby samba sdl slang spell sse ssl tcpd truetype X xmms" Here is the detailed error log: g++ -DHAVE_CONFIG_H -I. -I. -I../.. -I/usr/kde/3/include -I/usr/qt/3/include -I/usr/X11R6/include -DQT_THREAD_SUPPORT -D_REENTRANT -Wnon-virtual-dtor -Wno-long-long -Wbad-function-cast -Wundef -Wall -pedantic -W -Wpointer-arith -Wmissing-prototypes -Wwrite-strings -ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wconversion -DNDEBUG -DNO_DEBUG -O2 -march=i686 -O3 -pipe -fno-exceptions -fno-check-new -ftemplate-depth-99 -c -o ctagsdialog_impl.o `test -f ctagsdialog_impl.cpp || echo './'`ctagsdialog_impl.cpp In file included from ctagsdialog_impl.moc.cpp:11: ctagsdialog_impl.h:23: parse error before `{' ctagsdialog_impl.h:33: parse error before `*' ctagsdialog_impl.h:34: destructors must be member functions ctagsdialog_impl.h:35: `tagType' was not declared in this scope ctagsdialog_impl.h:35: parse error before `)' ctagsdialog_impl.h:39: parse error before `public' ctagsdialog_impl.h:46: `tagType' was not declared in this scope ctagsdialog_impl.h:46: parse error before `,' ctagsdialog_impl.h:47: syntax error before `:' ctagsdialog_impl.moc.cpp:23: invalid use of undefined type `class searchTagsDialogImpl' ctagsdialog_impl.h:22: forward declaration of `class searchTagsDialogImpl' ctagsdialog_impl.moc.cpp:27: structure `searchTagsDialogImpl' not yet defined ctagsdialog_impl.moc.cpp:27: assignment (not initialization) in declaration ctagsdialog_impl.moc.cpp:32: invalid use of undefined type `class searchTagsDialogImpl' ctagsdialog_impl.h:22: forward declaration of `class searchTagsDialogImpl' ctagsdialog_impl.moc.cpp:40: invalid use of undefined type `class searchTagsDialogImpl' ctagsdialog_impl.h:22: forward declaration of `class searchTagsDialogImpl' ctagsdialog_impl.moc.cpp:51: invalid use of undefined type `class searchTagsDialogImpl' ctagsdialog_impl.h:22: forward declaration of `class searchTagsDialogImpl' ctagsdialog_impl.moc.cpp: In method `class QMetaObject * searchTagsDialogImpl::staticMetaObject()': ctagsdialog_impl.moc.cpp:52: `metaObj' undeclared (first use this function) ctagsdialog_impl.moc.cpp:52: (Each undeclared identifier is reported only once ctagsdialog_impl.moc.cpp:52: for each function it appears in.) ctagsdialog_impl.moc.cpp:54: `searchTagsDialog' undeclared (first use this function) ctagsdialog_impl.moc.cpp:54: parse error before `::' ctagsdialog_impl.moc.cpp:106: warning: control reaches end of non-void function `searchTagsDialogImpl::staticMetaObject()' ctagsdialog_impl.moc.cpp: At top level: ctagsdialog_impl.moc.cpp:109: invalid use of undefined type `class searchTagsDialogImpl' ctagsdialog_impl.h:22: forward declaration of `class searchTagsDialogImpl' ctagsdialog_impl.moc.cpp: In method `void * searchTagsDialogImpl::qt_cast(const char *)': ctagsdialog_impl.moc.cpp:110: parse error before `)' ctagsdialog_impl.moc.cpp:111: parse error before `::' ctagsdialog_impl.moc.cpp:112: confused by earlier errors, bailing out make[3]: *** [ctagsdialog_impl.moc.o] Error 1
I fixed this problem by disabling (commenting out) MAKEOPTS="-j2" in /etc/make.globals It appears that there's a dependency problem in the kdevelop makefile somewhere. If you're running on a dual processor system, make is running 2 jobs concurrently, and the job that is supposed to create the ctagsdialog_impl.h file is apparently running behind. If you emerge again without the -j2, make will run single process and it seems to build just fine. BTW, this is not a problem with the ebuild. The same problem happens if you pull the source direct from KDE, and build with a "make -j2". A simple build with just "make" will compile kdevelop without a problem.
If that fixes it it's a duplicate of 6199. We now enforce make -j1 in the kdevelop ebuild. *** This bug has been marked as a duplicate of 6199 ***