Building QT Apps on Haiku

Hi All,

Just trying to write an app in QT … actually starting with the Hello World tutorial from here -> http://doc.trolltech.com/4.0/tutorial-t1.html

Problem is, I run qmake -project and then qmake and then make … and get …

g++ -Wl,-O1 -Wl,-rpath,/boot/common/lib -o Blank_BFS HelloWorld.o -L/boot/common/lib -lQtGui -L/boot/common/lib -ltracker -lQtCore -lroot
HelloWorld.o: In function main': HelloWorld.cpp:(.text+0x27): undefined reference toQApplication::QApplication(int &, char **, int)'
HelloWorld.cpp:(.text+0x3b): undefined reference to QString::fromAscii_helper(char const *, int)' HelloWorld.cpp:(.text+0x55): undefined reference toQPushButton::QPushButton(QString const &, QWidget *)'
HelloWorld.cpp:(.text+0x7d): undefined reference to QString::free(QString::Data *)' HelloWorld.cpp:(.text+0x9b): undefined reference toQWidget::resize(QSize const &)'
HelloWorld.cpp:(.text+0xbe): undefined reference to QApplication::exec(void)' HelloWorld.cpp:(.text+0xcb): undefined reference toQPushButton::~QPushButton(void)'
HelloWorld.cpp:(.text+0xd9): undefined reference to QApplication::~QApplication(void)' HelloWorld.cpp:(.text+0x119): undefined reference toQString::free(QString::Data *)'
HelloWorld.cpp:(.text+0x13e): undefined reference to QPushButton::~QPushButton(void)' HelloWorld.cpp:(.text+0x15e): undefined reference toQApplication::~QApplication(void)‘
HelloWorld.o: In function QList<QString>::free(QListData::Data *)': HelloWorld.cpp:(.QList<QString>::gnu.linkonce.t.free(QListData::Data *) +0x46): undefined reference toQString::free(QString::Data *)‘
HelloWorld.cpp:(.QList::gnu.linkonce.t.free(QListData::Data *) +0x5d): undefined reference to qFree(void *)' HelloWorld.o: In functionQList::detach_helper_grow(int, int)’:
HelloWorld.cpp:(.QList::gnu.linkonce.t.detach_helper_grow(int, int)+0x37): undefined reference to QListData::detach_grow(int *, int)' HelloWorld.o: In functionQList::append(QString const &)’:
HelloWorld.cpp:(.QList::gnu.linkonce.t.append(QString const &)+0x5c): undefined reference to QListData::append(void)' HelloWorld.cpp:(.QList<QString>::gnu.linkonce.t.append(QString const &)+0xa0): undefined reference toQString::free(QString::Data *)'
HelloWorld.o: In function QList<QString>::detach_helper(int)': HelloWorld.cpp:(.QList<QString>::gnu.linkonce.t.detach_helper(int)+0x2d): undefined reference toQListData::detach(int)'
HelloWorld.o: In function QList<QString>::operator+=(QList<QString> const &)': HelloWorld.cpp:(.gnu.linkonce.t.__apl__t5QList1Z7QStringRCt5QList1Z7QString+0xa8): undefined reference toQListData::append2(QListData const &)'
HelloWorld.o: In function QList<QString>::indexOf(QString const &, int) const': HelloWorld.cpp:(.QList<QString>::gnu.linkonce.t.indexOf(QString const &, int) const+0x71): undefined reference toQString::operator==(QString const &) const’
HelloWorld.o: In function QList<QString>::lastIndexOf(QString const &, int) const': HelloWorld.cpp:(.QList<QString>::gnu.linkonce.t.lastIndexOf(QString const &, int) const+0x7f): undefined reference toQString::operator==(QString const &) const’
HelloWorld.o: In function QList<QString>::clear(void)': HelloWorld.cpp:(.QList<QString>::gnu.linkonce.t.clear(void)+0x19): undefined reference toQListData::shared_null’
HelloWorld.o: In function QList<QString>::reserve(int)': HelloWorld.cpp:(.QList<QString>::gnu.linkonce.t.reserve(int)+0x3a): undefined reference toQListData::realloc(int)'
HelloWorld.o: In function QDataStream & operator>><QString>(QDataStream &, QList<QString> &)': HelloWorld.cpp:(.gnu.linkonce.t.__rs__H1Z7QString_R11QDataStreamRt5QList1ZX01_R11QDataStream+0x30): undefined reference toQDataStream::operator>>(int &)'
HelloWorld.cpp:(.gnu.linkonce.t.__rs__H1Z7QString_R11QDataStreamRt5QList1ZX01_R11QDataStream+0x5a): undefined reference to QString::shared_null' HelloWorld.cpp:(.gnu.linkonce.t.__rs__H1Z7QString_R11QDataStreamRt5QList1ZX01_R11QDataStream+0x73): undefined reference tooperator>>(QDataStream &, QString &)'
HelloWorld.cpp:(.gnu.linkonce.t.__rs__H1Z7QString_R11QDataStreamRt5QList1ZX01_R11QDataStream+0x8f): undefined reference to QDataStream::atEnd(void) const' HelloWorld.cpp:(.gnu.linkonce.t.__rs__H1Z7QString_R11QDataStreamRt5QList1ZX01_R11QDataStream+0xaf): undefined reference toQString::free(QString::Data *)'
HelloWorld.cpp:(.gnu.linkonce.t.__rs__H1Z7QString_R11QDataStreamRt5QList1ZX01_R11QDataStream+0xd5): undefined reference to QString::free(QString::Data *)' HelloWorld.cpp:(.gnu.linkonce.t.__rs__H1Z7QString_R11QDataStreamRt5QList1ZX01_R11QDataStream+0x10d): undefined reference toQString::free(QString::Data *)‘
HelloWorld.o: In function QDataStream & operator<<<QString>(QDataStream &, QList<QString> const &)': HelloWorld.cpp:(.gnu.linkonce.t.__ls__H1Z7QString_R11QDataStreamRCt5QList1ZX01_R11QDataStream+0x2d): undefined reference toQDataStream::operator<<(int)‘
HelloWorld.cpp:(.gnu.linkonce.t.__ls__H1Z7QString_R11QDataStreamRCt5QList1ZX01_R11QDataStream+0x58): undefined reference to operator<<(QDataStream &, QString const &)' HelloWorld.o: In functionQVector::free(QVectorTypedData *)’:
HelloWorld.cpp:(.QVector::gnu.linkonce.t.free(QVectorTypedData *) +0x42): undefined reference to QVectorData::free(QVectorData *, int)' HelloWorld.o: In functionQVector::realloc(int, int)’:
HelloWorld.cpp:(.QVector::gnu.linkonce.t.realloc(int, int)+0x78): undefined reference to QVectorData::allocate(int, int)' HelloWorld.cpp:(.QVector<QPoint>::gnu.linkonce.t.realloc(int, int)+0x86): undefined reference toqBadAlloc(void)'
HelloWorld.cpp:(.QVector::gnu.linkonce.t.realloc(int, int)+0x93): undefined reference to qBadAlloc(void)' HelloWorld.cpp:(.QVector<QPoint>::gnu.linkonce.t.realloc(int, int)+0xcd): undefined reference toQVectorData::reallocate(QVectorData *, int, int, int)‘
HelloWorld.cpp:(.QVector::gnu.linkonce.t.realloc(int, int)+0xdb): undefined reference to qBadAlloc(void)' HelloWorld.o: In functionQVector::QVector(int)’:
HelloWorld.cpp:(.QVector::gnu.linkonce.t.(int)+0x37): undefined reference to QVectorData::allocate(int, int)' HelloWorld.cpp:(.QVector<QPoint>::gnu.linkonce.t.(int)+0x45): undefined reference toqBadAlloc(void)'
HelloWorld.o: In function QVector<QPointF>::free(QVectorTypedData<QPointF> *)': HelloWorld.cpp:(.QVector<QPointF>::gnu.linkonce.t.free(QVectorTypedData<QPointF> *) +0x42): undefined reference toQVectorData::free(QVectorData *, int)'
HelloWorld.o: In function QVector<QPointF>::realloc(int, int)': HelloWorld.cpp:(.QVector<QPointF>::gnu.linkonce.t.realloc(int, int)+0x77): undefined reference toQVectorData::allocate(int, int)'
HelloWorld.cpp:(.QVector::gnu.linkonce.t.realloc(int, int)+0x85): undefined reference to qBadAlloc(void)' HelloWorld.cpp:(.QVector<QPointF>::gnu.linkonce.t.realloc(int, int)+0x93): undefined reference toqBadAlloc(void)'
HelloWorld.cpp:(.QVector::gnu.linkonce.t.realloc(int, int)+0xca): undefined reference to QVectorData::reallocate(QVectorData *, int, int, int)' HelloWorld.cpp:(.QVector<QPointF>::gnu.linkonce.t.realloc(int, int)+0xd8): undefined reference toqBadAlloc(void)‘
HelloWorld.o: In function QVector<QPointF>::QVector(int)': HelloWorld.cpp:(.QVector<QPointF>::gnu.linkonce.t.(int)+0x36): undefined reference toQVectorData::allocate(int, int)‘
HelloWorld.cpp:(.QVector::gnu.linkonce.t.(int)+0x44): undefined reference to qBadAlloc(void)' HelloWorld.o: In functionQVectorQPainterPath::Element::free(QVectorTypedDataQPainterPath::Element *)’:
HelloWorld.cpp:(.QVectorQPainterPath::Element::gnu.linkonce.t.free(QVectorTypedDataQPainterPath::Element *) +0x2b): undefined reference to QVectorData::free(QVectorData *, int)' HelloWorld.o: In functionQVectorQPainterPath::Element::realloc(int, int)’:
HelloWorld.cpp:(.QVectorQPainterPath::Element::gnu.linkonce.t.realloc(int, int)+0x51): undefined reference to QVectorData::allocate(int, int)' HelloWorld.cpp:(.QVector<QPainterPath::Element>::gnu.linkonce.t.realloc(int, int)+0x5f): undefined reference toqBadAlloc(void)'
HelloWorld.cpp:(.QVectorQPainterPath::Element::gnu.linkonce.t.realloc(int, int)+0x6b): undefined reference to qBadAlloc(void)' HelloWorld.cpp:(.QVector<QPainterPath::Element>::gnu.linkonce.t.realloc(int, int)+0xdd): undefined reference toQVectorData::reallocate(QVectorData *, int, int, int)'
HelloWorld.cpp:(.QVectorQPainterPath::Element::gnu.linkonce.t.realloc(int, int)+0xeb): undefined reference to qBadAlloc(void)' HelloWorld.cpp:(.QVector<QPainterPath::Element>::gnu.linkonce.t.realloc(int, int)+0x152): undefined reference toqMemSet(void *, int, unsigned long)'
HelloWorld.o: In function QList<QTouchEvent::TouchPoint>::free(QListData::Data *)': HelloWorld.cpp:(.QList<QTouchEvent::TouchPoint>::gnu.linkonce.t.free(QListData::Data *) +0x41): undefined reference toQTouchEvent::TouchPoint::~TouchPoint(void)‘
HelloWorld.cpp:(.QListQTouchEvent::TouchPoint::gnu.linkonce.t.free(QListData::Data *) +0x59): undefined reference to qFree(void *)' HelloWorld.o: In functionQListQTouchEvent::TouchPoint::detach_helper(int)’:
HelloWorld.cpp:(.QListQTouchEvent::TouchPoint::gnu.linkonce.t.detach_helper(int) +0x2d): undefined reference to QListData::detach(int)' HelloWorld.cpp:(.QList<QTouchEvent::TouchPoint>::gnu.linkonce.t.detach_helper(int) +0x7f): undefined reference toQTouchEvent::TouchPoint::TouchPoint(QTouchEvent::TouchPoint const &)'
HelloWorld.cpp:(.QListQTouchEvent::TouchPoint::gnu.linkonce.t.detach_helper(int) +0x10a): undefined reference to QTouchEvent::TouchPoint::~TouchPoint(void)' HelloWorld.cpp:(.QList<QTouchEvent::TouchPoint>::gnu.linkonce.t.detach_helper(int) +0x1bd): undefined reference toqFree(void *)'
collect2: ld returned 1 exit status
make: *** [Blank_BFS] Error 1

Any ideas ?

Try here: qt-haiku.ru and here http://haikuware.com/20100706518/qt-47-for-haiku-released

I don’t recall doing anything special to compile qt applications but been couple weeks since I used Haiku.

Maybe can’t find qt directory. Try setting QTDIR. Linux example below:
qmake -project
qmake
QTDIR=/usr/share/qt3/ make

Change it to Haiku’s QTDIR.

I will boot Haiku in next couple of days to see if I gave a QTDIR or anything else to get qt applications to compile for me.

I was having the same problem until I switched to gcc4 using

setgcc gcc4
. Have you switched to gcc4?