problems linking with the static qt lib - Help

This is a discussion on problems linking with the static qt lib - Help ; here are the specs of the machine i'm working on: Red Hat Linux release 7.1 (Seawolf) Kernel 2.4.2-2 on an i686 gcc version 2.96 20000731 (Red Hat Linux 7.1 2.96-85) glibc-devel-2.2.4-19.3 i have both libqt.so and libqt.a and i need ...

+ Reply to Thread
Results 1 to 2 of 2

Thread: problems linking with the static qt lib

  1. problems linking with the static qt lib

    here are the specs of the machine i'm working on:

    Red Hat Linux release 7.1 (Seawolf)
    Kernel 2.4.2-2 on an i686
    gcc version 2.96 20000731 (Red Hat Linux 7.1 2.96-85)
    glibc-devel-2.2.4-19.3

    i have both libqt.so and libqt.a and i need to link my app statically
    against the qt lib. when linking dynamically, i get no probs... but
    when going for a static linkage, i get a bunch of undefined
    references.

    Does anyone know what this is due to?? when doing a 'nm' on libqt.a
    those symbols exist in libqt.a but are marked as undefined.. but the
    same is also true of libqt.so which works..

    here's the command executed for the linkage and the errors

    g++ -o ConfigFileManager ApplicationWindow.o EventForm.o
    GeneralForm.o main.o moc_ApplicationWindow.o moc_EventForm.o
    moc_GeneralForm.o -Wl,-rpath,/net/tcmvega55/data1/jtools/Config/CHANNELHEARTBEAT_LINUX/qt/lib
    -L/net/tcmvega55/data1/jtools/Config/CHANNELHEARTBEAT_LINUX/qt/lib
    -L/usr/X11R6/lib -lqt -lXext -lX11 -lm
    /net/tcmvega55/data1/jtools/Config/CHANNELHEARTBEAT_LINUX/qt/lib/libqt.a(qpaintdevice_x11.o):
    In function `bitBlt(QPaintDevice *, int, int, QPaintDevice const *,
    int, int, int, int, Qt::RasterOp, bool)':
    qpaintdevice_x11.o(.text+0xc44): undefined reference to
    `XRenderChangePicture'
    qpaintdevice_x11.o(.text+0xc9b): undefined reference to
    `XRenderComposite'
    qpaintdevice_x11.o(.text+0xcd5): undefined reference to
    `XRenderChangePicture'
    /net/tcmvega55/data1/jtools/Config/CHANNELHEARTBEAT_LINUX/qt/lib/libqt.a(qwidget_x11.o):
    In function `QWidget::create(unsigned long, bool, bool)':
    qwidget_x11.o(.text+0x918): undefined reference to `XftDrawDestroy'
    qwidget_x11.o(.text+0x978): undefined reference to `XftDrawCreate'
    /net/tcmvega55/data1/jtools/Config/CHANNELHEARTBEAT_LINUX/qt/lib/libqt.a(qwidget_x11.o):
    In function `QWidget::destroy(bool, bool)':
    qwidget_x11.o(.text+0x1149): undefined reference to `XftDrawDestroy'
    /net/tcmvega55/data1/jtools/Config/CHANNELHEARTBEAT_LINUX/qt/lib/libqt.a(qfont.o):
    In function `QFontStruct::~QFontStruct(void)':
    qfont.o(.text+0x48d9): undefined reference to `XftFontClose'
    qfont.o(.text+0x48f3): undefined reference to `XftPatternDestroy'
    /net/tcmvega55/data1/jtools/Config/CHANNELHEARTBEAT_LINUX/qt/lib/libqt.a(qfont.o):
    In function `QFontPrivate::boundingRect(QChar const &)':
    qfont.o(.text+0x560c): undefined reference to `XftGlyphExists'
    qfont.o(.text+0x562d): undefined reference to `XftTextExtents16'
    /net/tcmvega55/data1/jtools/Config/CHANNELHEARTBEAT_LINUX/qt/lib/libqt.a(qfont.o):
    In function `QFontPrivate::textWidth(QString const &, int, int)':
    qfont.o(.text+0x5be0): undefined reference to `XftGlyphExists'
    qfont.o(.text+0x5c06): undefined reference to `XftTextExtents16'
    /net/tcmvega55/data1/jtools/Config/CHANNELHEARTBEAT_LINUX/qt/lib/libqt.a(qfont.o):
    In function `QFontPrivate::textWidth(QString const &, int, int,
    QFontPrivate::TextRun *)':
    qfont.o(.text+0x61f4): undefined reference to `XftGlyphExists'
    qfont.o(.text+0x6218): undefined reference to `XftTextExtents16'
    /net/tcmvega55/data1/jtools/Config/CHANNELHEARTBEAT_LINUX/qt/lib/libqt.a(qfont.o):
    In function `QFontPrivate::textExtents(QString const &, int, int,
    QCharStruct *)':
    qfont.o(.text+0x7051): undefined reference to `XftGlyphExists'
    qfont.o(.text+0x7072): undefined reference to `XftTextExtents16'
    /net/tcmvega55/data1/jtools/Config/CHANNELHEARTBEAT_LINUX/qt/lib/libqt.a(qfont.o):
    In function `QFontPrivate::drawText(_XDisplay *, int, unsigned long,
    unsigned long, _XGC *, QColor const &, Qt::BGMode, QColor const &,
    int, int, QFontPrivate::TextRun const *, int)':
    qfont.o(.text+0x7956): undefined reference to `XftDrawRect'
    qfont.o(.text+0x79c7): undefined reference to `XftDrawString16'
    /net/tcmvega55/data1/jtools/Config/CHANNELHEARTBEAT_LINUX/qt/lib/libqt.a(qfont.o):
    In function `QFontPrivate::inFont(QChar const &)':
    qfont.o(.text+0x7cf4): undefined reference to `XftGlyphExists'
    /net/tcmvega55/data1/jtools/Config/CHANNELHEARTBEAT_LINUX/qt/lib/libqt.a(qfont.o):
    In function `checkXftFont(_XftPattern *, QString const &, QChar const
    &)':
    qfont.o(.text+0x7efc): undefined reference to `XftPatternGetString'
    qfont.o(.text+0x7f81): undefined reference to `XftPatternDestroy'
    qfont.o(.text+0x7fa2): undefined reference to `XftFreeTypeOpen'
    qfont.o(.text+0x7fbf): undefined reference to `XftFreeTypeGlyphExists'
    qfont.o(.text+0x7fcf): undefined reference to `XftPatternDestroy'
    qfont.o(.text+0x7fe3): undefined reference to `XftFreeTypeClose'
    /net/tcmvega55/data1/jtools/Config/CHANNELHEARTBEAT_LINUX/qt/lib/libqt.a(qfont.o):
    In function `QFontPrivate::bestXftPattern(QString const &, QString
    const &, QChar const &, double *) const':
    qfont.o(.text+0x8627): undefined reference to `XftPatternCreate'
    qfont.o(.text+0x8659): undefined reference to `XftPatternAddString'
    qfont.o(.text+0x8680): undefined reference to `XftPatternAddString'
    qfont.o(.text+0x86a7): undefined reference to `XftPatternAddString'
    qfont.o(.text+0x86bc): undefined reference to `XftPatternAddString'
    qfont.o(.text+0x86d4): undefined reference to `XftPatternAddInteger'
    qfont.o(.text+0x86e4): undefined reference to `XftPatternAddInteger'
    qfont.o(.text+0x86f5): undefined reference to `XftPatternAddInteger'
    qfont.o(.text+0x8704): undefined reference to `XftPatternAddDouble'
    qfont.o(.text+0x873c): undefined reference to `XftPatternAddBool'
    qfont.o(.text+0x8758): undefined reference to `XftFontMatch'
    qfont.o(.text+0x8762): undefined reference to `XftPatternDestroy'
    /net/tcmvega55/data1/jtools/Config/CHANNELHEARTBEAT_LINUX/qt/lib/libqt.a(qfont.o):
    In function `QFontPrivate::initFontInfo(QFont::Script, double)':
    qfont.o(.text+0xbad8): undefined reference to `XftPatternGetString'
    qfont.o(.text+0xbaec): undefined reference to `XftPatternGetInteger'
    qfont.o(.text+0xbb03): undefined reference to `XftPatternGetInteger'
    qfont.o(.text+0xbb17): undefined reference to `XftPatternGetInteger'
    /net/tcmvega55/data1/jtools/Config/CHANNELHEARTBEAT_LINUX/qt/lib/libqt.a(qfont.o):
    In function `QFontPrivate::loadUnicode(QFont::Script, QChar const &)':
    qfont.o(.text+0xcbf9): undefined reference to `XftGlyphExists'
    /net/tcmvega55/data1/jtools/Config/CHANNELHEARTBEAT_LINUX/qt/lib/libqt.a(qfont.o):
    In function `QFontPrivate::load(QFont::Script, bool)':
    qfont.o(.text+0xd5c2): undefined reference to `XftNameParse'
    qfont.o(.text+0xd5ec): undefined reference to `XftFontMatch'
    qfont.o(.text+0xd603): undefined reference to `XftPatternDuplicate'
    qfont.o(.text+0xd611): undefined reference to `XftFontOpenPattern'
    /net/tcmvega55/data1/jtools/Config/CHANNELHEARTBEAT_LINUX/qt/lib/libqt.a(qfont.o):
    In function `QFontMetrics::width(QChar) const':
    qfont.o(.text+0xf968): undefined reference to `XftGlyphExists'
    qfont.o(.text+0xf989): undefined reference to `XftTextExtents16'
    /net/tcmvega55/data1/jtools/Config/CHANNELHEARTBEAT_LINUX/qt/lib/libqt.a(qfont.o):
    In function `QFontMetrics::charWidth(QString const &, int) const':
    qfont.o(.text+0xfd97): undefined reference to `XftGlyphExists'
    qfont.o(.text+0xfdb8): undefined reference to `XftTextExtents16'
    /net/tcmvega55/data1/jtools/Config/CHANNELHEARTBEAT_LINUX/qt/lib/libqt.a(qfontdatabase.o):
    In function `QFontDatabase::createDatabase(void)':
    qfontdatabase.o(.text+0xe90): undefined reference to `XftListFonts'
    qfontdatabase.o(.text+0xee7): undefined reference to
    `XftPatternGetString'
    qfontdatabase.o(.text+0x114d): undefined reference to `XftListFonts'
    qfontdatabase.o(.text+0x11ab): undefined reference to
    `XftPatternGetString'
    qfontdatabase.o(.text+0x1408): undefined reference to `XftListFonts'
    qfontdatabase.o(.text+0x144e): undefined reference to `XftListFonts'
    qfontdatabase.o(.text+0x14a4): undefined reference to
    `XftPatternGetString'
    qfontdatabase.o(.text+0x1659): undefined reference to
    `XftPatternGetInteger'
    qfontdatabase.o(.text+0x1681): undefined reference to
    `XftPatternGetInteger'
    qfontdatabase.o(.text+0x16a6): undefined reference to
    `XftPatternGetInteger'
    qfontdatabase.o(.text+0x18f4): undefined reference to
    `XftFontSetDestroy'
    qfontdatabase.o(.text+0x1a11): undefined reference to
    `XftFontSetDestroy'
    qfontdatabase.o(.text+0x1a3c): undefined reference to
    `XftFontSetDestroy'
    /net/tcmvega55/data1/jtools/Config/CHANNELHEARTBEAT_LINUX/qt/lib/libqt.a(qtaddons_x11.o):
    In function `XftNameUnparse':
    qtaddons_x11.o(.text+0x1a0): undefined reference to `XftPatternFind'
    qtaddons_x11.o(.text+0x1d9): undefined reference to `XftPatternFind'
    qtaddons_x11.o(.text+0x292): undefined reference to `XftPatternFind'
    /net/tcmvega55/data1/jtools/Config/CHANNELHEARTBEAT_LINUX/qt/lib/libqt.a(qtaddons_x11.o):
    In function `XftDrawPicture':
    qtaddons_x11.o(.text+0x37f): undefined reference to `XftDrawRect'
    /net/tcmvega55/data1/jtools/Config/CHANNELHEARTBEAT_LINUX/qt/lib/libqt.a(qtaddons_x11.o):
    In function `XftDrawCreateAlpha':
    qtaddons_x11.o(.text+0x416): undefined reference to
    `XRenderFindFormat'
    qtaddons_x11.o(.text+0x431): undefined reference to
    `XRenderCreatePicture'
    qtaddons_x11.o(.text+0x449): undefined reference to
    `XRenderCreatePicture'
    qtaddons_x11.o(.text+0x45e): undefined reference to
    `XRenderCreatePicture'
    /net/tcmvega55/data1/jtools/Config/CHANNELHEARTBEAT_LINUX/qt/lib/libqt.a(qapplication_x11.o):
    In function `QApplication::x11_apply_settings(void)':
    qapplication_x11.o(.text+0x1c6f): undefined reference to `XftInit'
    qapplication_x11.o(.text+0x1c7f): undefined reference to
    `XftInitFtLibrary'
    /net/tcmvega55/data1/jtools/Config/CHANNELHEARTBEAT_LINUX/qt/lib/libqt.a(qapplication_x11.o):
    In function `qt_init_internal(int *, char **, _XDisplay *, unsigned
    long, unsigned long)':
    qapplication_x11.o(.text+0x6b0d): undefined reference to
    `XRenderQueryExtension'
    qapplication_x11.o(.text+0x6b28): undefined reference to
    `XRenderFindVisualFormat'
    /net/tcmvega55/data1/jtools/Config/CHANNELHEARTBEAT_LINUX/qt/lib/libqt.a(qapplication_x11.o):
    In function `sm_setProperty(char const *, char const *, int,
    SmPropValue *)':
    qapplication_x11.o(.text+0xe46a): undefined reference to
    `SmcSetProperties'
    qapplication_x11.o(.text+0xe481): undefined reference to
    `SmcDeleteProperties'
    /net/tcmvega55/data1/jtools/Config/CHANNELHEARTBEAT_LINUX/qt/lib/libqt.a(qapplication_x11.o):
    In function `sm_performSaveYourself(QSessionManagerData *)':
    qapplication_x11.o(.text+0xec4e): undefined reference to
    `SmcRequestSaveYourselfPhase2'
    qapplication_x11.o(.text+0xecbb): undefined reference to
    `SmcInteractDone'
    qapplication_x11.o(.text+0xee09): undefined reference to
    `SmcSaveYourselfDone'
    /net/tcmvega55/data1/jtools/Config/CHANNELHEARTBEAT_LINUX/qt/lib/libqt.a(qapplication_x11.o):
    In function `QSmSocketReceiver::socketActivated(int)':
    qapplication_x11.o(.text+0xf419): undefined reference to
    `SmcGetIceConnection'
    qapplication_x11.o(.text+0xf421): undefined reference to
    `IceProcessMessages'
    /net/tcmvega55/data1/jtools/Config/CHANNELHEARTBEAT_LINUX/qt/lib/libqt.a(qapplication_x11.o):
    In function `QSessionManager::QSessionManager(QApplication *, QString
    &, QString &)':
    qapplication_x11.o(.text+0xf710): undefined reference to
    `SmcOpenConnection'
    qapplication_x11.o(.text+0xf7c0): undefined reference to
    `SmcGetIceConnection'
    qapplication_x11.o(.text+0xf7c8): undefined reference to
    `IceConnectionNumber'
    /net/tcmvega55/data1/jtools/Config/CHANNELHEARTBEAT_LINUX/qt/lib/libqt.a(qapplication_x11.o):
    In function `QSessionManager::~QSessionManager(void)':
    qapplication_x11.o(.text+0xf9de): undefined reference to
    `SmcCloseConnection'
    /net/tcmvega55/data1/jtools/Config/CHANNELHEARTBEAT_LINUX/qt/lib/libqt.a(qapplication_x11.o):
    In function `QSessionManager::allowsInteraction(void)':
    qapplication_x11.o(.text+0xfb04): undefined reference to
    `SmcInteractRequest'
    /net/tcmvega55/data1/jtools/Config/CHANNELHEARTBEAT_LINUX/qt/lib/libqt.a(qapplication_x11.o):
    In function `QSessionManager::allowsErrorInteraction(void)':
    qapplication_x11.o(.text+0xfb8f): undefined reference to
    `SmcInteractRequest'
    /net/tcmvega55/data1/jtools/Config/CHANNELHEARTBEAT_LINUX/qt/lib/libqt.a(qapplication_x11.o):
    In function `QSessionManager::release(void)':
    qapplication_x11.o(.text+0xfbfb): undefined reference to
    `SmcInteractDone'
    /net/tcmvega55/data1/jtools/Config/CHANNELHEARTBEAT_LINUX/qt/lib/libqt.a(qdesktopwidget_x11.o):
    In function `QDesktopWidgetPrivate::init(void)':
    qdesktopwidget_x11.o(.text+0x1a0): undefined reference to
    `XineramaQueryExtension'
    qdesktopwidget_x11.o(.text+0x1b7): undefined reference to
    `XineramaIsActive'
    qdesktopwidget_x11.o(.text+0x1db): undefined reference to
    `XineramaQueryScreens'
    /net/tcmvega55/data1/jtools/Config/CHANNELHEARTBEAT_LINUX/qt/lib/libqt.a(qpixmap_x11.o):
    In function `QPixmap::init(int, int, int, bool,
    QPixmap::Optimization)':
    qpixmap_x11.o(.text+0x490): undefined reference to
    `XftDrawCreateBitmap'
    qpixmap_x11.o(.text+0x4cf): undefined reference to `XftDrawCreate'
    /net/tcmvega55/data1/jtools/Config/CHANNELHEARTBEAT_LINUX/qt/lib/libqt.a(qpixmap_x11.o):
    In function `QPixmap::deref(void)':
    qpixmap_x11.o(.text+0x5b0): undefined reference to `XftDrawDestroy'
    /net/tcmvega55/data1/jtools/Config/CHANNELHEARTBEAT_LINUX/qt/lib/libqt.a(qpixmap_x11.o):
    In function `QPixmap::QPixmap(int, int, unsigned char const *, bool)':
    qpixmap_x11.o(.text+0x718): undefined reference to
    `XftDrawCreateBitmap'
    /net/tcmvega55/data1/jtools/Config/CHANNELHEARTBEAT_LINUX/qt/lib/libqt.a(qpixmap_x11.o):
    In function `QPixmap::convertFromImage(QImage const &, int)':
    qpixmap_x11.o(.text+0x1f3a): undefined reference to `XftDrawDestroy'
    qpixmap_x11.o(.text+0x2227): undefined reference to
    `XftDrawCreateBitmap'
    qpixmap_x11.o(.text+0x3b22): undefined reference to `XftDrawDestroy'
    qpixmap_x11.o(.text+0x3bff): undefined reference to
    `XftDrawCreateBitmap'
    qpixmap_x11.o(.text+0x3c46): undefined reference to `XftDrawCreate'
    /net/tcmvega55/data1/jtools/Config/CHANNELHEARTBEAT_LINUX/qt/lib/libqt.a(qpainter_x11.o):
    In function `QPainter::updatePen(void)':
    qpainter_x11.o(.text+0xee3): undefined reference to
    `XRenderSetPictureClipRectangles'
    qpainter_x11.o(.text+0xf6b): undefined reference to
    `XRenderSetPictureClipRectangles'
    qpainter_x11.o(.text+0xfc9): undefined reference to
    `XRenderChangePicture'
    /net/tcmvega55/data1/jtools/Config/CHANNELHEARTBEAT_LINUX/qt/lib/libqt.a(qpainter_x11.o):
    In function `QPainter::updateBrush(void)':
    qpainter_x11.o(.text+0x144d): undefined reference to
    `XRenderSetPictureClipRectangles'
    qpainter_x11.o(.text+0x14d3): undefined reference to
    `XRenderSetPictureClipRectangles'
    qpainter_x11.o(.text+0x1531): undefined reference to
    `XRenderChangePicture'
    /net/tcmvega55/data1/jtools/Config/CHANNELHEARTBEAT_LINUX/qt/lib/libqt.a(qpainter_x11.o):
    In function `QPainter::begin(QPaintDevice const *, bool)':
    qpainter_x11.o(.text+0x1d66): undefined reference to
    `XRenderChangePicture'
    /net/tcmvega55/data1/jtools/Config/CHANNELHEARTBEAT_LINUX/qt/lib/libqt.a(qpainter_x11.o):
    In function `QPainter::end(void)':
    qpainter_x11.o(.text+0x21d4): undefined reference to
    `XRenderChangePicture'
    /net/tcmvega55/data1/jtools/Config/CHANNELHEARTBEAT_LINUX/qt/lib/libqt.a(qpainter_x11.o):
    In function `QPainter::setClipping(bool)':
    qpainter_x11.o(.text+0x2684): undefined reference to
    `XRenderSetPictureClipRectangles'
    qpainter_x11.o(.text+0x2745): undefined reference to
    `XRenderSetPictureClipRectangles'
    qpainter_x11.o(.text+0x27d9): undefined reference to
    `XRenderChangePicture'
    /net/tcmvega55/data1/jtools/Config/CHANNELHEARTBEAT_LINUX/qt/lib/libqt.a(qpainter_x11.o):
    In function `QPainter::drawPixmap(int, int, QPixmap const &, int, int,
    int, int)':
    qpainter_x11.o(.text+0x63b8): undefined reference to
    `XRenderSetPictureClipRectangles'
    qpainter_x11.o(.text+0x67ce): undefined reference to
    `XRenderComposite'
    /net/tcmvega55/data1/jtools/Config/CHANNELHEARTBEAT_LINUX/qt/lib/libqt.a(qpainter_x11.o):
    In function `QPainter::drawTiledPixmap(int, int, int, int, QPixmap
    const &, int, int)':
    qpainter_x11.o(.text+0x6c7d): undefined reference to
    `XRenderComposite'
    /net/tcmvega55/data1/jtools/Config/CHANNELHEARTBEAT_LINUX/qt/lib/libqt.a(qlibrary_unix.o):
    In function `QLibraryPrivate::loadLibrary(void)':
    qlibrary_unix.o(.text+0x38): undefined reference to `dlopen'
    /net/tcmvega55/data1/jtools/Config/CHANNELHEARTBEAT_LINUX/qt/lib/libqt.a(qlibrary_unix.o):
    In function `QLibraryPrivate::freeLibrary(void)':
    qlibrary_unix.o(.text+0xcf): undefined reference to `dlclose'
    /net/tcmvega55/data1/jtools/Config/CHANNELHEARTBEAT_LINUX/qt/lib/libqt.a(qlibrary_unix.o):
    In function `QLibraryPrivate::resolveSymbol(char const *)':
    qlibrary_unix.o(.text+0x110): undefined reference to `dlsym'
    collect2: ld returned 1 exit status
    make: *** [ConfigFileManager] Error 1

  2. Re: problems linking with the static qt lib

    jeanphiluwp@hotmail.com (ti-coune) writes:
    >here are the specs of the machine i'm working on:
    >
    >Red Hat Linux release 7.1 (Seawolf)
    >Kernel 2.4.2-2 on an i686
    >gcc version 2.96 20000731 (Red Hat Linux 7.1 2.96-85)
    >glibc-devel-2.2.4-19.3
    >
    >i have both libqt.so and libqt.a and i need to link my app statically
    >against the qt lib. when linking dynamically, i get no probs... but
    >when going for a static linkage, i get a bunch of undefined
    >references.
    >
    >Does anyone know what this is due to?? when doing a 'nm' on libqt.a
    >those symbols exist in libqt.a but are marked as undefined.. but the
    >same is also true of libqt.so which works..
    >


    You are missing the X libraries. run nm's on the various libraries
    in /usr/lib, /lib and /usr/X11R6/lib until you find those which
    provide the missing symbols, then statically link with them
    (assuming they have static versions available).

    scott

+ Reply to Thread