martes, 6 de julio de 2010

QSerialDevice en Qt 4.5

Al compilar la librería qserialdevice, versión 0.2, me aparece el siguiente error:

$ qmakeBuildExamples.pro
$ make
nativeserialengine_unix.cpp:(.text+0xac9): undefined reference to
qt_safe_select(int, fd_set*, fd_set*, fd_set*, timeval const*)'
collect2: ld returned 1 exit status
make: *** [reader] Error 1

Luego de comunicarme con el creador de esta librería, él me indicó que el problema se debía a que la librería esta hecha para Qt 4.6 y yo tengo la 4.5.3. Para solucionar esto me dijo que tenía que cambiar el nombre de la función qt_safe_select por select, en el archivo nativeserialengine_unix.cpp y compilar nuevamente la libreria de la forma integrada.

Ahora todo funciona bien. Al momento de compilar un nuevo proyecto le debo ingresar los siguientes instrucciones al archivo .pro del proyecto:


#QSERIALDEVICE
OBJECTS_DIR = ../qserialdevice/build/bin/reader/obj
MOC_DIR = ../qserialdevice/build/bin/reader/moc

DEPENDDIR = .
INCLUDEDIR = .

INCLUDEPATH += ../qserialdevice
INCLUDEPATH += ../qserialdevice/qserialdevice

LIBS += -lqserialdevice

QMAKE_LIBDIR += ../qserialdevice/build/lib/qintegratedserialdevice/release



Todas estas instrucciones deben hacer referencia a el lugar donde se encuentra el directorio donde estan las librerias.

Ojalá les sirva esta información.

No hay comentarios: