Compilation fails with message: D-BUS QT3 binding 0.70 ============== prefix: /usr exec_prefix: /usr libdir: /usr/lib datadir: /usr/share source code location: . compiler: i686-pc-linux-gnu-gcc cflags: -O2 -march=pentium-m -msse3 -pipe -fomit-frame-pointer -Wall -Wchar-subscripts -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wpointer-arith -Wcast-align -Wfloat-equal -Wsign-compare cppflags: -DDBUS_API_SUBJECT_TO_CHANGE=1 cxxflags: -O2 -march=pentium-m -msse3 -pipe -fomit-frame-pointer Maintainer mode: no Building Qt3 bindings: yes make all-am make[1]: Entering directory `/var/tmp/portage/dbus-qt3-old-0.70/work/dbus-qt3-0.70' if /bin/sh ./libtool --tag=CXX --mode=compile i686-pc-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I. -I. -I. -I/usr/include/dbus-1.0 -I/usr/lib/dbus-1.0/include -I/usr/qt/3/include -DDBUS_API_SUBJECT_TO_CHANGE=1 -O2 -march=pentium-m -msse3 -pipe -fomit-frame-pointer -MT dbus-qthread.lo -MD -MP -MF ".deps/dbus-qthread.Tpo" -c -o dbus-qthread.lo `test -f './dbus-qthread.cpp' || echo './'`./dbus-qthread.cpp; \ then mv -f ".deps/dbus-qthread.Tpo" ".deps/dbus-qthread.Plo"; else rm -f ".deps/dbus-qthread.Tpo"; exit 1; fi mkdir .libs i686-pc-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I. -I. -I. -I/usr/include/dbus-1.0 -I/usr/lib/dbus-1.0/include -I/usr/qt/3/include -DDBUS_API_SUBJECT_TO_CHANGE=1 -O2 -march=pentium-m -msse3 -pipe -fomit-frame-pointer -MT dbus-qthread.lo -MD -MP -MF .deps/dbus-qthread.Tpo -c ./dbus-qthread.cpp -fPIC -DPIC -o .libs/dbus-qthread.o i686-pc-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I. -I. -I. -I/usr/include/dbus-1.0 -I/usr/lib/dbus-1.0/include -I/usr/qt/3/include -DDBUS_API_SUBJECT_TO_CHANGE=1 -O2 -march=pentium-m -msse3 -pipe -fomit-frame-pointer -MT dbus-qthread.lo -MD -MP -MF .deps/dbus-qthread.Tpo -c ./dbus-qthread.cpp -o dbus-qthread.o >/dev/null 2>&1 if /bin/sh ./libtool --tag=CXX --mode=compile i686-pc-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I. -I. -I. -I/usr/include/dbus-1.0 -I/usr/lib/dbus-1.0/include -I/usr/qt/3/include -DDBUS_API_SUBJECT_TO_CHANGE=1 -O2 -march=pentium-m -msse3 -pipe -fomit-frame-pointer -MT message.lo -MD -MP -MF ".deps/message.Tpo" -c -o message.lo `test -f './message.cpp' || echo './'`./message.cpp; \ then mv -f ".deps/message.Tpo" ".deps/message.Plo"; else rm -f ".deps/message.Tpo"; exit 1; fi i686-pc-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I. -I. -I. -I/usr/include/dbus-1.0 -I/usr/lib/dbus-1.0/include -I/usr/qt/3/include -DDBUS_API_SUBJECT_TO_CHANGE=1 -O2 -march=pentium-m -msse3 -pipe -fomit-frame-pointer -MT message.lo -MD -MP -MF .deps/message.Tpo -c ./message.cpp -fPIC -DPIC -o .libs/message.o i686-pc-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I. -I. -I. -I/usr/include/dbus-1.0 -I/usr/lib/dbus-1.0/include -I/usr/qt/3/include -DDBUS_API_SUBJECT_TO_CHANGE=1 -O2 -march=pentium-m -msse3 -pipe -fomit-frame-pointer -MT message.lo -MD -MP -MF .deps/message.Tpo -c ./message.cpp -o message.o >/dev/null 2>&1 make[1]: Circular connection.h <- connection.moc dependency dropped. /usr/bin/moc connection.h > connection.moc if /bin/sh ./libtool --tag=CXX --mode=compile i686-pc-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I. -I. -I. -I/usr/include/dbus-1.0 -I/usr/lib/dbus-1.0/include -I/usr/qt/3/include -DDBUS_API_SUBJECT_TO_CHANGE=1 -O2 -march=pentium-m -msse3 -pipe -fomit-frame-pointer -MT connection.lo -MD -MP -MF ".deps/connection.Tpo" -c -o connection.lo `test -f './connection.cpp' || echo './'`./connection.cpp; \ then mv -f ".deps/connection.Tpo" ".deps/connection.Plo"; else rm -f ".deps/connection.Tpo"; exit 1; fi i686-pc-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I. -I. -I. -I/usr/include/dbus-1.0 -I/usr/lib/dbus-1.0/include -I/usr/qt/3/include -DDBUS_API_SUBJECT_TO_CHANGE=1 -O2 -march=pentium-m -msse3 -pipe -fomit-frame-pointer -MT connection.lo -MD -MP -MF .deps/connection.Tpo -c ./connection.cpp -fPIC -DPIC -o .libs/connection.o In file included from ./connection.cpp:168: ./connection.moc:12:2: error: #error "The header file 'connection.h' doesn't include <QObject>." ./connection.moc:49: error: 'const QMetaObject DBusQt::Connection::staticMetaObject' is not a static member of 'class DBusQt::Connection' ./connection.moc:49: error: variable 'const QMetaObject DBusQt::Connection::staticMetaObject' has initializer but incomplete type ./connection.moc:54: error: prototype for 'const QMetaObject* DBusQt::Connection::metaObject() const' does not match any in class 'DBusQt::Connection' ./connection.h:40: error: candidate is: virtual QMetaObject* DBusQt::Connection::metaObject() const ./connection.moc:54: error: 'const QMetaObject* DBusQt::Connection::metaObject() const' cannot be overloaded ./connection.h:40: error: with 'virtual QMetaObject* DBusQt::Connection::metaObject() const' ./connection.moc: In member function 'const QMetaObject* DBusQt::Connection::metaObject() const': ./connection.moc:56: error: cannot convert 'QMetaObject* (*)()' to 'const QMetaObject*' in return ./connection.moc: At global scope: ./connection.moc:59: error: no 'void* DBusQt::Connection::qt_metacast(const char*)' member function declared in class 'DBusQt::Connection' ./connection.moc: In member function 'void* DBusQt::Connection::qt_metacast(const char*)': ./connection.moc:64: error: 'qt_metacast' is not a member of 'QObject' ./connection.moc: At global scope: ./connection.moc:67: error: 'int DBusQt::Connection::qt_metacall' is not a static member of 'class DBusQt::Connection' ./connection.moc:67: error: incomplete type 'QMetaObject' used in nested name specifier ./connection.moc:67: error: expected primary-expression before 'int' ./connection.moc:67: error: expected primary-expression before 'void' ./connection.moc:67: error: initializer expression list treated as compound expression ./connection.moc:68: error: expected ',' or ';' before '{' token make[1]: *** [connection.lo] Error 1 make[1]: Leaving directory `/var/tmp/portage/dbus-qt3-old-0.70/work/dbus-qt3-0.70' make: *** [all] Error 2 I'm using qt 3.3.6-r4 and 4.2.2, dbus 1.0.2.
emerge --info: Portage 2.1.1-r2 (default-linux/x86/2006.1, gcc-4.1.1, glibc-2.4-r4, 2.6.18-suspend2-r1 i686) ================================================================= System uname: 2.6.18-suspend2-r1 i686 Genuine Intel(R) CPU T2300 @ 1.66GHz Gentoo Base System version 1.12.6 Last Sync: Sat, 16 Dec 2006 15:30:01 +0000 app-admin/eselect-compiler: [Not Present] dev-java/java-config: 1.3.7, 2.0.30 dev-lang/python: 2.4.3-r4 dev-python/pycrypto: 2.0.1-r5 dev-util/ccache: [Not Present] dev-util/confcache: [Not Present] sys-apps/sandbox: 1.2.17 sys-devel/autoconf: 2.13, 2.60 sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2 sys-devel/binutils: 2.16.1-r3 sys-devel/gcc-config: 1.3.14 sys-devel/libtool: 1.5.22 virtual/os-headers: 2.6.17-r2 ACCEPT_KEYWORDS="x86" AUTOCLEAN="yes" CBUILD="i686-pc-linux-gnu" CFLAGS="-O2 -march=pentium-m -msse3 -pipe -fomit-frame-pointer" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/kde/4.0//env /usr/kde/4.0//share/config /usr/kde/4.0//shutdown /usr/share/X11/xkb /usr/share/config" CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/gconf /etc/java-config/vms/ /etc/revdep-rebuild /etc/terminfo" CXXFLAGS="-O2 -march=pentium-m -msse3 -pipe -fomit-frame-pointer" DISTDIR="/var/portage/distfiles" FEATURES="autoconfig distlocks sandbox sfperms strict" GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/linux/distributions/gentoo" LINGUAS="en" MAKEOPTS="-j1" PKGDIR="/usr/portage/packages" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --delete-after --stats --timeout=180 --exclude='/distfiles' --exclude='/local' --exclude='/packages'" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/portage/local/layman/genstef /usr/portage/local/layman/kde-experimental /usr/portage/local/layman/ebuild-exchange" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="x86 7zip X aac acpi alsa asf berkdb bitmap-fonts bzip2 cairo cli cracklib crypt cups dbus dlloader dri dvd elibc_glibc fam firebird flac fortran gdbm gif gtk iconv imagemagick input_devices_evdev input_devices_keyboard input_devices_mouse ipv6 isdnlog java java5 jpeg jpeg2k kde kdeenablefinal kdehiddenvisibility kernel_linux libg++ linguas_en lm_sensors mmx mp3 mysql ncurses nls noamazon nptl nptlonly ntfs offensive ogg opengl pcre pdf perl png ppds pppd python qt3 qt4 quicktime readline real reflection sdl session spell spl sse ssl svg tcpd tga theora tiff truetype-fonts type1-fonts udev unicode userland_GNU video_cards_i810 vorbis win32codecs wmf x264 xfs xinerama xorg xvid xvmc zlib" Unset: CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, LC_ALL, LDFLAGS, PORTAGE_RSYNC_EXTRA_OPTS
It seems that problem is with qt 4.2.2 moc. After replacing moc binary with link to moc from qt 3, everything seems to work alright.
yep, looks like it's picking up the wrong moc.
Yep. Caleb beat me to diagnosing the problem. Committed the fix.