[Kde-devel-es] compilar umbrello

Ignacio Cárdenas kde-devel-es@mail.kde.org
Thu, 27 Feb 2003 08:54:39 +0100


Hola!

>   Estoy intentando compilar el umbrello y me dice que no ecuentra las
> Qt. (si alguien tiene el paquete para testing/i386.deb me hace un favor).

Pues no lo tengo... pero intentaré ayudar de todos modos ;-)

> El error es:
>
>   tmp/cc0w95KK.o(.text+0xe): In function `main':
>   : undefined reference to `QString::null'
>
>   /tmp/cc0w95KK.o(.text+0x13): In function `main':
>   : undefined reference to `QStyleFactory::create(QString const&)'
>
>   /tmp/cc0w95KK.o(.text+0x20): In function `main':
>
>   Vamos, que peta al linkar. La linea que usa el configure para compilar
> es:
>
>   g++ -o conftest -O2 -fno-exceptions -fno-check-new -I/usr/include/qt
>   -I/usr/X11R6/include  -DQT_THREAD_SUPPORT  -D_REENTRANT  -L/usr/lib
>   -L/usr/X11R6/lib   conftest.cc  -lqt-mt -lpng -lz -lm -ljpeg -ldl
>   -lXext -lX11 -lSM -lICE  -lresolv -lpthread 1>&5
>
>   libqt-mt esta en /usr/lib, que esta puesto como parametro. Tengo
> instalado los paquetes pertinenes de libqt3-dev, libqt3-mt-dev y

Ese tipo de error que obtienes puede suceder por dos motivos (que yo sepa):

-No has enlazado con las Qt (no parece ser tu caso)
-Las versiones de Qt y umbrello están compiladas con versiones de gcc 
distintas.

Dado que los enlaces a las Qt parecen estar bien, no se me ocurre más que lo 
segundo... Quiero decir que la versión de gcc que usas para compilar umbrello 
es distinta a la que se usó para compilar libqt3-mt.

Intenta compilar este programa (escríbelo en un fichero llamado 'prueba.cpp'):

#include <qapplication.h>
#include <qpushbutton.h>

int main( int argc, char **argv )
{
    QApplication a( argc, argv );

    QPushButton *hello=new QPushButton( "Hello world!", 0 );
    hello->resize( 100, 30 );
 
    QObject::connect( hello, SIGNAL(clicked()), &a, SLOT(quit()) );
 
    a.setMainWidget( hello );
    hello->show();
 
    return a.exec();
} 

usando este comando:

g++ -L/usr/lib -I/usr/include/qt prueba.cpp -o prueba -lqt-mt

Si funciona, entonces tus librería están bien y el umbrello no debería dar ese 
error... Si no funciona, estonces debería pensar en actualizar el compilador: 
si tienes gcc2 (creo que será el caso) pásate a gcc3. Y tranquilo, que puedes 
tener dos versiones del gcc instaladas sin ningún problema :-)

> libqt3-mt. El linker se queja de que puede encontrar problemas a linkar
> libpng, por que Qt esta enlazada con la version 3 y yo uso la 2, pero en
> testing no existe el paquete de desarrollo para la libpng 3.

El caso es que tienes instalado el paquete libpng2-dev (librerías png 
antiguas, pero gcc las usa al compilar). El paquete con las cabeceras de las 
libpng3 es 'libpng-dev'. Instala ese y luego desinstala libpng2-dev, verás 
como ya no te da problemas ;-)

Un saludo,
Ignacio.
-- 
"La capacidad de decidir por nosotros mismos es la única libertad que 
realmente tenemos... Usa esa libertad."

========================
//->Ignacio Cárdenas Díaz<-//
========================
iakynet@eresmas.com
Linux user #286387 -- http://counter.li.org
----------------------------------
Dpto. Lenguajes y Sistemas Informáticos, UNED.
icardenas@bec.uned.es
http://www.lsi.uned.es
----------------------------------