PDA

View Full Version : Qt Necessitas for Android



jeyanthinatarajan
21st June 2012, 08:33
Hi Every one,

I got the following error while running qxmpp in qt necessitas
error: cannot find -lqxmpp

Please help me to find a solution...


Thanks & Regards,

Jeyanthi Natarajan

ChrisW67
21st June 2012, 09:38
Post your pro file

jeyanthinatarajan
21st June 2012, 10:19
Hi,

This is the QXmpp.pri file

# Common definitions

QT += network xml
QXMPP_VERSION = 0.4.0
QXMPP_INCLUDEPATH = $$PWD/src/base $$PWD/src/client $$PWD/src/server

CONFIG(debug, debug|release) {
QXMPP_LIBRARY_NAME = qxmpp_d
} else {
QXMPP_LIBRARY_NAME = qxmpp
}

# Libraries used internally by QXmpp
android|symbian {

} else:contains(MEEGO_EDITION,harmattan) {
# meego/harmattan has speex for sure
QXMPP_INTERNAL_DEFINES += QXMPP_USE_SPEEX
QXMPP_INTERNAL_LIBS += -lspeex
} else:symbian {
QXMPP_INTERNAL_INCLUDES = $$APP_LAYER_SYSTEMINCLUDE
QXMPP_INTERNAL_LIBS = -lesock
} else:win32 {
QXMPP_INTERNAL_LIBS = -ldnsapi -lws2_32
}

# Libraries for apps which use QXmpp
symbian {
# Symbian needs a .lib extension to recognise the library as static
QXMPP_LIBS = -l$${QXMPP_LIBRARY_NAME}.lib
} else {
QXMPP_LIBS = -l$${QXMPP_LIBRARY_NAME}
}

# Determine library type (lib or staticlib)
isEmpty(QXMPP_LIBRARY_TYPE) {
QXMPP_LIBRARY_TYPE = staticlib
}
contains(QXMPP_LIBRARY_TYPE,staticlib) {
# FIXME: we should be able to use the link_prl option to automatically pull
# in the extra libraries which the qxmpp library needs, but this does not
# seem to work on win32, so we specify the dependencies here:
QXMPP_LIBS += $$QXMPP_INTERNAL_LIBS
}

# Installation prefix and library directory
isEmpty(PREFIX) {
unix:PREFIX=/usr/local
}
isEmpty(LIBDIR) {
LIBDIR=lib
}

This is examples.pri
include(../qxmpp.pri)

TEMPLATE = app
CONFIG += console

INCLUDEPATH += $$QXMPP_INCLUDEPATH
LIBS += -L../../src $$QXMPP_LIBS

# Symbian packaging rules
symbian {
vendorinfo = \
"; Localised Vendor name" \
"%{\"QXmpp\"}" \
" " \
"; Unique Vendor name" \
":\"QXmpp\"" \
" "

examples_deployment.pkg_prerules += vendorinfo
DEPLOYMENT += examples_deployment

TARGET.CAPABILITY = "NetworkServices"
}
This is the Pro file

include(../examples.pri)

TARGET = GuiClient
TEMPLATE = app

SOURCES += main.cpp \
chatMsgGraphicsItem.cpp \
chatGraphicsScene.cpp \
chatGraphicsView.cpp \
chatDialog.cpp \
mainDialog.cpp \
rosterItemModel.cpp \
rosterItem.cpp \
rosterItemSortFilterProxyModel.cpp \
utils.cpp \
rosterListView.cpp \
searchLineEdit.cpp \
statusWidget.cpp \
signInStatusLabel.cpp \
statusAvatarWidget.cpp \
statusTextWidget.cpp \
statusToolButton.cpp \
vCardCache.cpp \
profileDialog.cpp \
capabilitiesCache.cpp \
accountsCache.cpp \
xmlConsoleDialog.cpp \
aboutDialog.cpp

HEADERS += chatMsgGraphicsItem.h \
chatGraphicsScene.h \
chatGraphicsView.h \
chatDialog.h \
mainDialog.h \
rosterItemModel.h \
rosterItem.h \
rosterItemSortFilterProxyModel.h \
utils.h \
rosterListView.h \
searchLineEdit.h \
statusWidget.h \
signInStatusLabel.h \
statusAvatarWidget.h \
statusTextWidget.h \
statusToolButton.h \
vCardCache.h \
profileDialog.h \
capabilitiesCache.h \
accountsCache.h \
xmlConsoleDialog.h \
aboutDialog.h

FORMS += mainDialog.ui \
chatDialog.ui \
statusWidget.ui \
profileDialog.ui \
xmlConsoleDialog.ui \
aboutDialog.ui

QT += network \
xml

RESOURCES += resources.qrc

wysota
21st June 2012, 15:17
Is /usr/local/lib in your library search path? Is libqxmpp.so present in that directory?

jeyanthinatarajan
22nd June 2012, 06:07
Hi,

Thanks for the reply wysota

I included the library file in /usr/local/lib but still i am getting the same error...

ChrisW67
22nd June 2012, 09:03
As far as I can tell your PRO file uses the default linker library path and a relative folder called "../../src" only (i.e. the LIBS -L options). Unless libqxmpp.so is installed in one of those locations (the relative location is prone to being not what you thought) then things will not be in the correct locations for include paths and libraries. If you have not installed qxmpp according to the README (http://code.google.com/p/qxmpp/source/browse/README) file in its source bundle then do so. If you used the defaults on a UNIX-like machine then is should be installed into /usr/local/lib, include etc. and often will Just Work.

Ultimately your PRO should only need:


QXMPP_PREFIX = /usr/local
INCLUDEPATH += $${QXMPP_PREFIX}/include
LIBS += -L$${QXMPP_PREFIX}/lib -lqxmpp

in order to use the library (and not the files you are copying form the actual qxmpp build).