From: Werner S. <ws...@se...> - 2004-01-15 20:57:06
|
On Thursday 15 January 2004 21:45, Robert Jonsson wrote: > Hi, > > I'm still stuck in the build process for cvs-muse. I tried building qt3.2.3 > instead, to no avail I still get the same error: > > /opt/qt323//bin/uic -L ../../muse/widgets -o editctrlbase.cpp -impl > editctrlbase.h editctrlbase.ui > /opt/qt323//bin/moc editctrlbase.h -o moc_editctrlbase.cpp > /bin/sh ../../libtool --mode=compile g++ -DHAVE_CONFIG_H -I. -I. -I../.. -g > -fno-exceptions -Wall -W -D_GNU_SOURCE -D_REENTRANT -DQT_CLEAN_NAMESPACE > -DQT_NO_COMPAT -I../.. -I../../muse/widgets -I/opt/qt323//include -I.. > -g -O2 -c editctrlbase.cpp -o base_editctrlbase.lo > rm -f .libs/base_editctrlbase.lo > g++ -DHAVE_CONFIG_H -I. -I. -I../.. -g -fno-exceptions -Wall -W > -D_GNU_SOURCE -D_REENTRANT -DQT_CLEAN_NAMESPACE -DQT_NO_COMPAT -I../.. > -I../../muse/widgets -I/opt/qt323//include -I.. -g -O2 -c editctrlbase.cpp > -fPIC -DPIC -o .libs/base_editctrlbase.lo > editctrlbase.cpp: In constructor `EditCtrlBase::EditCtrlBase(QWidget*, > const char*, bool, unsigned int)': > editctrlbase.cpp:52: error: invalid use of undefined type `struct PosEdit' > editctrlbase.h:20: error: forward declaration of `struct PosEdit' > editctrlbase.cpp:54: error: no matching function for call to > `QGridLayout::addWidget(PosEdit*&, int, int)' > /opt/qt323/include/qlayout.h:331: error: candidates are: void > QGridLayout::addWidget(QWidget*, int, int, int) > make[5]: *** [editctrlbase.lo] Error 1 > > Now, I think I figured out what happens, but I have no idea why. > > In the UI file there is a line: > <includehint>posedit.h</includehint> > Which probably is the include file that would fulfill the 'undefined type'. > But why does uic not add it? > I'm normally running KDE with qt3.1.2 and I didn't want to mess with that > so I installed the new QT versions under /opt and set QTDIR to point there > and changed LD_LIBRARY_PATH to this location. > Since I have several QT versions installed and the one I'm trying to use is > nonstandard I figure the culprit is there _somewhere_... but I'd be darn if > I understand what... > Anybody have a clue? the widged PosEdit lives in two places: as part of MusE and as part of musewidgetsplugin.so for use by QT-designer. Somehow the uic compiler also wants to access this shared library. In your case he did not find it. The reason may be that you forgot to set the right library path in ~/.qt/qtrc. Werner |