Problemas para instalar Qt 1.44

Imagen de Chauen
0 puntos

 

 

Hola a todos. Soy nuevo en esto de linux y me cuesta un poco echar andar algunos programas. El caso es que me gustaria instalar el Kmud 1.0 pero cuando intento hacer el ./configure me da este error:

     checking for Qt... configure: error: Qt (>= 1.42 and < 2.0) (headers and libraries) not found. Please check your installation! 

Buscando informacion al respecto he encontrado que debia instalar lass librerias qt y kde. Me las descargué pero no se que hacer con ellas.

 Por favor, si alguien me pudiera ayudar se lo agradeceria mucho. Gracias.

 

Imagen de javara
+1
0
-1

Las qt son muy viejas, por lo que deberías instalar uno más nuevo, como qt3 o qt4, tengo el opera instalado y depende de libqt3-mt, por lo que supongo que si instalas el libqt3-mt-dev debería solucionarte el tema para poder compilarlo, sin problemas. En este sitio tienes las librerías qt1.44 si deseas compilarlas, pero.... Si instalas las libqt3-mt-dev debería funcionarte.

Javier Aragones

Linux User # 170472

+1
0
-1

Javier Aragones

Linux User # 170472

Ubuntu User # 18322 

Imagen de Chauen
+1
0
-1

 

Gracias por responder, pero ya me instalé las qt3 y qt4 con el Synaptic (tengo ubuntu 7.10) y no funciona. El programa solo funciona con qt < 2 por eso pedia ayuda para compilar las qt 1.44. En el Synaptic solo vienen las qt3 y qt4 pero nada de la 1.44 y para compilarlo tengo que hacerlo a traves de un terminal manualmente y eso no lo domino mucho... por no decir nada.

+1
0
-1
Imagen de javara
+1
0
-1

Tanto las qt3 y qt4 que has instalado deben tener un paquete llamado igual pero que incluye dev, eso porque alli estan loa archivos necesarios para compilar algo. 

Si deseas compilar el qt-1.44 el proceso es simple, aunque puede ser muy  largo. Luego de tener el paquete qt-1.44.tar.gz, debes descomprimirlo en algún lado ( te reiendan /usr/local)y trabajar desde allí. Luego de descompimirlo te queda un directorio qt-1.44, alli debes trabajar, pero en consola, fijate primero el archivo INSTALL que te explica como se procede al respecto, sobre todo las variables que debes aplicar a .profile. Luego seguis las guias. Al terminal el qt debes compilar el kmud, pero se supone que tienes lo necesario instalado. 

 

Javier Aragones

Linux User # 170472

+1
0
-1

Javier Aragones

Linux User # 170472

Ubuntu User # 18322 

Imagen de Chauen
+1
0
-1

 

 

Pues es que el paquete coprimido no me deja descomprimirlo en usr/local y lo tengo en el escritorio. Y eso de las variables de .profile no se ni donde estan ni como editarlas ni nada. En el INSTALL pone lo siguiente: 

    2.  Set some environment variables in the file .profile (or .login,
    depending on your shell) in your home directory. (Create the
    file if it is not there already.)

    QTDIR            - wherever you installed Qt
    PATH            - to locate the moc program
    MANPATH         - to access the Qt man pages
    LD_LIBRARY_PATH        - for the shared Qt library
 

Pero no encuentro el .profile :( 

+1
0
-1
Imagen de javara
+1
0
-1

Teniendo todo a mano, lo que debes hacer ahora es trabajar todo como root, es decir todos los comandos los debes hacer anteponiendo sudo, en el escritorio tienes un directorio llamado qt-1.44, lo que haces primero es copiarlo a /usr/local, poniendo:

sudo cp -R Escritorio/qt-1.44 /usr/local/qt

aqui copias el directorio y de paso lo renombras como te dice el INSTALL, luego en tu home o directorio personal tienes un archivo oculto llamado .profile, este o bien /etc/profile te sirve para agregar las líneas que te indica, en tu caso agregas estas:

 QTDIR=/usr/local/qt
        PATH=$QTDIR/bin:$PATH
        if [ $MANPATH ]
        then
                MANPATH=$QTDIR/man:$MANPATH
        else
                MANPATH=$QTDIR/man
        fi
        if [ $LD_LIBRARY_PATH ]
        then
                LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
        else
                LD_LIBRARY_PATH=$QTDIR/lib
        fi
        LIBRARY_PATH=$LD_LIBRARY_PATH
        if [ $CPLUS_INCLUDE_PATH ]
        then
                CPLUS_INCLUDE_PATH=$QTDIR/include:$CPLUS_INCLUDE_PATH
        else
                CPLUS_INCLUDE_PATH=$QTDIR/include
        fi
 
        export QTDIR PATH MANPATH LD_LIBRARY_PATH LIBRARY_PATH
        export CPLUS_INCLUDE_PATH

puedes copiar y pegar, poniendo:

sudo gedit /etc/profile

o

gedit ~/.profile 

o abriendo el .profile con gedit, como este es tuyo no requieres permisos de root, luego de esto, vas a /usr/local/qt y compilas. La copia del directoiro qt-1.44 y la edición del .profile puedes hacerla mas simple si pones gksu nautilus en Alt+F2 o Ejecutar una aplicación. Esto debes hacerlo en consola,n no queda otra....

cd /usr/local/qt

sudo make

en este punto deberías tener todo esta parte lista, luego viene el kmud.

Veamos. 

Javier Aragones

Linux User # 170472

+1
0
-1

Javier Aragones

Linux User # 170472

Ubuntu User # 18322 

Imagen de Chauen
+1
0
-1

 

Bueno, pues he conseguido renombrar el directorio qt-1.44 a qt y lo he llevado a /usr/local/ quedandome /usr/local/qt. Hasta aqui ningun problema.

Luego  he abierto el .profile con el sudo gedit y primero he copiado todo lo que tenia que copiar a continuacion de lo que ya habia y después sin querer he borrado lo que ya habia en .profile y ha quedado solo lo que tenia que copiar es decir, me a quedado asi:

QTDIR=/usr/local/qt
        PATH=$QTDIR/bin:$PATH
        if [ $MANPATH ]
        then
                MANPATH=$QTDIR/man:$MANPATH
        else
                MANPATH=$QTDIR/man
        fi
        if [ $LD_LIBRARY_PATH ]
        then
                LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
        else
                LD_LIBRARY_PATH=$QTDIR/lib
        fi
        LIBRARY_PATH=$LD_LIBRARY_PATH
        if [ $CPLUS_INCLUDE_PATH ]
        then
                CPLUS_INCLUDE_PATH=$QTDIR/include:$CPLUS_INCLUDE_PATH
        else
                CPLUS_INCLUDE_PATH=$QTDIR/include
        fi
 
        export QTDIR PATH MANPATH LD_LIBRARY_PATH LIBRARY_PATH
        export CPLUS_INCLUDE_PATH

 

 

 Y cuando termino con esto voy a la carpeta /usr/local/qt a traves de la consola y cuando pongo make me dice lo siguiente:

 These targets are available:

aix-g++-static            irix-64-shared            osf1-cxx-static
aix-g++-static-debug      irix-64-shared-debug      osf1-cxx-static-debug
aix-xlc-shared            irix-64-static            osf1-g++-shared
aix-xlc-shared-debug      irix-64-static-debug      osf1-g++-shared-debug
aix-xlc-static            irix-dcc-shared           osf1-g++-static
aix-xlc-static-debug      irix-dcc-shared-debug     osf1-g++-static-debug
bsdi-g++-shared           irix-dcc-static           qnx-g++-shared
bsdi-g++-shared-debug     irix-dcc-static-debug     qnx-g++-shared-debug
bsdi-g++-static           irix-g++-shared           qnx-g++-static
bsdi-g++-static-debug     irix-g++-shared-debug     qnx-g++-static-debug
dgux-g++-shared           irix-g++-static           sco-g++-shared
dgux-g++-shared-debug     irix-g++-static-debug     sco-g++-shared-debug
dgux-g++-static           irix-n32-shared           sco-g++-static
dgux-g++-static-debug     irix-n32-shared-debug     sco-g++-static-debug
freebsd-g++-shared        irix-n32-static           solaris-cc-shared
freebsd-g++-shared-debug  irix-n32-static-debug     solaris-cc-shared-debug
freebsd-g++-static        irix-o32-shared           solaris-cc-static
freebsd-g++-static-debug  irix-o32-shared-debug     solaris-cc-static-debug
gnu-g++-shared            irix-o32-static           solaris-g++-shared
gnu-g++-shared-debug      irix-o32-static-debug     solaris-g++-shared-debug
gnu-g++-static            linux-g++-shared          solaris-g++-static
gnu-g++-static-debug      linux-g++-shared-debug    solaris-g++-static-debug
hpux-acc-shared           linux-g++-static          sunos-g++-shared
hpux-acc-shared-debug     linux-g++-static-debug    sunos-g++-shared-debug
hpux-acc-static           netbsd-g++-shared         sunos-g++-static
hpux-acc-static-debug     netbsd-g++-shared-debug   sunos-g++-static-debug
hpux-cc-shared            netbsd-g++-static         ultrix-g++-static
hpux-cc-shared-debug      netbsd-g++-static-debug   ultrix-g++-static-debug
hpux-cc-static            openbsd-g++-shared        unixware-g++-shared
hpux-cc-static-debug      openbsd-g++-shared-debug  unixware-g++-shared-debug
hpux-g++-shared           openbsd-g++-static        unixware-g++-static
hpux-g++-shared-debug     openbsd-g++-static-debug  unixware-g++-static-debug
hpux-g++-static           osf1-cxx-shared
hpux-g++-static-debug     osf1-cxx-shared-debug

Make any of them to configure Qt for building.

Please note that the GIF image reading functionality in Qt is disabled
by default. If you want to enable it, see the file src/kernel/qt_gif.h

To configure Qt for building, select a target from the list above that
matches your system and desired configuration, and give the command
   make <your-selected-target>

This make process will now abort with an error message; this is normal
Simply proceed as described.

make: *** [variables] Error 1

 

Mirando en la pagina de Kmud he visto que antes de hacer el 'make' ellos hacian un 'make liinux-g++-shared' que curiosamente es una de las ociones que me da el error al hacer 'make'. Pues bueno, cuando hago el 'make linux-g++-shared' me sale lo siguiente:

./propagate configs/linux-g++-shared
cmp: /LICENSE: No existe el fichero ó directorio
cmp: /LICENSE: No existe el fichero ó directorio

   $QTDIR must be set to $PWD (/usr/local/qt)
   Please read INSTALL

make: *** [linux-g++-shared] Error 1

 

Y aquí me he quedado y no se como continuar :) 

+1
0
-1
Imagen de javara
+1
0
-1

Esto último es porque no esta definido el path, es decir donde copiaste las variables, en .profile. Por cierto el archivo dice:

# ~/.profile: executed by the command interpreter for login shells.
# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
# exists.
# see /usr/share/doc/bash/examples/startup-files for examples.
# the files are located in the bash-doc package.

# the default umask is set in /etc/profile
#umask 022

# if running bash
if [ -n "$BASH_VERSION" ]; then
    # include .bashrc if it exists
    if [ -f ~/.bashrc ]; then
        . ~/.bashrc
    fi
fi

# set PATH so it includes user's private bin if it exists
if [ -d ~/bin ] ; then
    PATH=~/bin:"${PATH}"
fi

Lo que puedes hacer es en consola escribir:

sudo export QTDIR=/usr/local/qt

sudo export PATH=$QTDIR/bin:$PATH

esto te permite el resto, ya que estas instalate el libx11-dev que lo vas a necesitar.  

Javier Aragones

Linux User # 170472

+1
0
-1

Javier Aragones

Linux User # 170472

Ubuntu User # 18322 

Imagen de Chauen
+1
0
-1

 

Bueno... seguimos con los errores, ya lo siento pero solo llevo 2 dias con el ubuntu. 

He hecho los export. Primero probé haciendo 'sudo export xxx' pero me decia 'command not found' asi que lo hice poniendo directamente el 'export xxx' y parece que funcionó.

Después comprobé que tenia la libx11-dev haciendo 'sudo apt-get install libx11-dev' (algun que otro comando ya me voy aprendiendo, jeje) y me dijo que tenia la version mas reciente.

Entonces es cuando procedí ha hacer el make. Fuí al directorio /usr/local/qt y puse el 'make linux-g++-shared' y apareció lo siguiente:

./propagate configs/linux-g++-shared
  created ./examples/aclock/Makefile
  created ./examples/application/Makefile
  created ./examples/biff/Makefile
  created ./examples/connect/Makefile
  created ./examples/cursor/Makefile
  created ./examples/dclock/Makefile
  created ./examples/desktop/Makefile
  created ./examples/dirview/Makefile
  created ./examples/dragdrop/Makefile
  created ./examples/drawdemo/Makefile
  created ./examples/forever/Makefile
  created ./examples/hello/Makefile
  created ./examples/layout/Makefile
  created ./examples/layouts/Makefile
  created ./examples/life/Makefile
  created ./examples/Makefile
  created ./examples/menu/Makefile
  created ./examples/movies/Makefile
  created ./examples/picture/Makefile
  created ./examples/pref/Makefile
  created ./examples/progress/Makefile
  created ./examples/qdir/Makefile
  created ./examples/qmag/Makefile
  created ./examples/qwerty/Makefile
  created ./examples/scrollview/Makefile
  created ./examples/showimg/Makefile
  created ./examples/splitter/Makefile
  created ./examples/table/Makefile
  created ./examples/tetrix/Makefile
  created ./examples/tictac/Makefile
  created ./examples/timestmp/Makefile
  created ./examples/tooltip/Makefile
  created ./examples/validator/Makefile
  created ./examples/widgets/Makefile
  created ./examples/xform/Makefile
  created ./extensions/imageio/src/Makefile
  created ./extensions/nsplugin/examples/grapher/Makefile
  created ./extensions/nsplugin/examples/qtimage/Makefile
  created ./extensions/nsplugin/examples/trivial/Makefile
  created ./extensions/nsplugin/src/Makefile
  created ./extensions/opengl/examples/box/Makefile
  created ./extensions/opengl/examples/gear/Makefile
  created ./extensions/opengl/examples/glpixmap/Makefile
  created ./extensions/opengl/examples/sharedbox/Makefile
  created ./extensions/opengl/src/Makefile
  created ./extensions/xt/examples/mainlyMotif/Makefile
  created ./extensions/xt/examples/mainlyQt/Makefile
  created ./extensions/xt/examples/mainlyXt/Makefile
  created ./extensions/xt/src/Makefile
  created ./src/Makefile
  created ./src/moc/Makefile
  created ./tutorial/Makefile
  created ./tutorial/t10/Makefile
  created ./tutorial/t11/Makefile
  created ./tutorial/t12/Makefile
  created ./tutorial/t13/Makefile
  created ./tutorial/t14/Makefile
  created ./tutorial/t1/Makefile
  created ./tutorial/t2/Makefile
  created ./tutorial/t3/Makefile
  created ./tutorial/t4/Makefile
  created ./tutorial/t5/Makefile
  created ./tutorial/t6/Makefile
  created ./tutorial/t7/Makefile
  created ./tutorial/t8/Makefile
  created ./tutorial/t9/Makefile

Qt is now configured for building. Just run make.
To reconfigure, run make config.

Cuando vi esto me alegré :) pero no por mucho tiempo por que seguidamente fui a poner 'make' y me dijo esto:

cd src/moc; make
make[1]: se ingresa al directorio `/usr/local/qt/src/moc'
make[1]: No se hace nada para `all'.
make[1]: se sale del directorio `/usr/local/qt/src/moc'
cp src/moc/moc bin/moc
cd src; make
make[1]: se ingresa al directorio `/usr/local/qt/src'
g++ -c -I/usr/local/qt/include -I/usr/X11R6/include -pipe -O2 -fno-strength-reduce -O2 -fno-strength-reduce -fPIC  -o dialogs/qfiledialog.o dialogs/qfiledialog.cpp
En el fichero incluído de /usr/local/qt/include/qpainter.h:33,
                 de /usr/local/qt/include/qdrawutil.h:28,
                 de /usr/local/qt/include/qscrollbar.h:30,
                 de /usr/local/qt/include/qscrollview.h:28,
                 de /usr/local/qt/include/qlistview.h:37,
                 de dialogs/qfiledialog.cpp:30:
/usr/local/qt/include/qregion.h:73:182: error: el operador "defined" requiere un identificador
/usr/local/qt/include/qregion.h:73:182: error: ("xor" es un elemento alternativo para "^" en C++)
/usr/local/qt/include/qregion.h:73:185: error: falta un '(' en la expresión
make[1]: *** [dialogs/qfiledialog.o] Error 1
make[1]: se sale del directorio `/usr/local/qt/src'
make: *** [src] Error 2

 

+1
0
-1
Imagen de javara
+1
0
-1

Fijate en el archivo /usr/local/qt/include/qregion.h que se esta definiendo algo que se supone no debería estar. 

Por otro lado ese programa esta discontinuado desde el año 2001 según vi, no te conviene tratar con otra alternativa mas nueva como gnome-mud que es para gnome? de paso esta listo para instalar desde synaptic.

Veamos. 

Javier Aragones

Linux User # 170472

+1
0
-1

Javier Aragones

Linux User # 170472

Ubuntu User # 18322 

Imagen de Chauen
+1
0
-1

 

Pues si que habia pensao en utilizar algun cliente mas facil de instalar, de hecho tengo puesto el kildclient, pero ninguno de estos programas tiene mapa cosa que el kmud si, por eso me interesaba instalarmelo. De todas formas por si pica la curiosidad de donde esta el fallo te copio el qregion.h

 

#ifndef QREGION_H
#define QREGION_H

#ifndef QT_H
#include "qshared.h"
#include "qrect.h"
#include "qstring.h"
#endif // QT_H

class Q_EXPORT QRegion
{
public:
    enum RegionType { Rectangle, Ellipse };

    QRegion();
    QRegion( int x, int y, int w, int h, RegionType = Rectangle );
    QRegion( const QRect &, RegionType = Rectangle );
    QRegion( const QPointArray &, bool winding=FALSE );
    QRegion( const QRegion & );
    QRegion( const QBitmap & );
   ~QRegion();
    QRegion &operator=( const QRegion & );

    bool    isNull()   const;
    bool    isEmpty()  const;

    bool    contains( const QPoint &p ) const;
    bool    contains( const QRect &r )    const;

    void    translate( int dx, int dy );

    QRegion unite( const QRegion & )    const;
    QRegion intersect( const QRegion &) const;
    QRegion subtract( const QRegion & ) const;

// Work around clash with the ANSI C++ keyword "xor".
//
// Use of QRegion::xor() is deprecated - you should use QRegion::eor().
// Calls to QRegion::xor() will work for now, but give a warning.
//
// If possible, compile the Qt library without this ANSI C++ feature enabled,
// thus including both the old xor() and new eor() in the library, so old
// binaries will continue to work (with the warning).
//
// We also hide the xor() function if there is a #define for xor, in
// case someone is using #define xor ^ to work around deficiencies in
// their compiler that cause problems with some other header files.
//
#if !(defined(__STRICT_ANSI__) && defined(_CC_GNU_)) && !defined(_CC_EDG_) && !defined(_CC_HP_) && !defined(_CC_HP_ACC_) && !defined(_CC_USLC_) && !defined(_CC_MWERKS_) && !defined(xor)
    QRegion xor( const QRegion & )    const;
#endif
    QRegion eor( const QRegion & )    const;

    QRect   boundingRect() const;
    QArray<QRect> rects() const;

    bool    operator==( const QRegion & )  const;
    bool    operator!=( const QRegion &r ) const
            { return !(operator==(r)); }

#if defined(_WS_WIN_)
    HANDLE  handle() const { return data->rgn; }
#elif defined(_WS_PM_)
    HANDLE  handle() const { return data->rgn; }
#elif defined(_WS_X11_)
    Region  handle() const { return data->rgn; }
#endif

    friend Q_EXPORT QDataStream &operator<<( QDataStream &, const QRegion & );
    friend Q_EXPORT QDataStream &operator>>( QDataStream &, QRegion & );

private:
    QRegion( bool );
    QRegion copy() const;
    void    detach();
#if defined(_WS_WIN_)
    QRegion winCombine( const QRegion &, int ) const;
#endif
    void    cmd( int id, void *, const QRegion * = 0, const QRegion * = 0 );
    void    exec( const QByteArray & );
    struct QRegionData : public QShared {
#if defined(_WS_WIN_)
    HANDLE rgn;
#elif defined(_WS_PM_)
    HANDLE rgn;
#elif defined(_WS_X11_)
    Region rgn;
#endif
    bool   is_null;
    } *data;
#if defined(_WS_PM_)
    static HPS hps;
#endif
};

#define QRGN_SETRECT        1        // region stream commands
#define QRGN_SETELLIPSE        2        //  (these are internal)
#define QRGN_SETPTARRAY_ALT    3
#define QRGN_SETPTARRAY_WIND    4
#define QRGN_TRANSLATE        5
#define QRGN_OR            6
#define QRGN_AND        7
#define QRGN_SUB        8
#define QRGN_XOR        9
#define QRGN_RECTS           10

/*****************************************************************************
  QRegion stream functions
 *****************************************************************************/

Q_EXPORT QDataStream &operator<<( QDataStream &, const QRegion & );
Q_EXPORT QDataStream &operator>>( QDataStream &, QRegion & );

#endif // QREGION_H

 

Gracias por toda la ayuda que me has proporcionado. 

+1
0
-1
Imagen de javara
+1
0
-1

La teoría dice que deberías borrar esto:

#if !(defined(__STRICT_ANSI__) && defined(_CC_GNU_)) && !defined(_CC_EDG_) && !defined(_CC_HP_) && !defined(_CC_HP_ACC_) && !defined(_CC_USLC_) && !defined(_CC_MWERKS_) && !defined(xor)
    QRegion xor( const QRegion & )    const;
#endif

Fijate lo que te dice aqui:

//Use of QRegion::xor() is deprecated - you should use QRegion::eor().
// Calls to QRegion::xor() will work for now, but give a warning.

donde dice que esta despreciado, por otro lado al ser una versión tan vieja de qt van a aparecer una gran cantidad de errores y si borras esto, no sabemos las causas que pueden traer, por lo que vi el kmud no existe en ningún lado compilado para ubuntu y eso genera mayor duda. Veamos....  

Javier Aragones

Linux User # 170472

+1
0
-1

Javier Aragones

Linux User # 170472

Ubuntu User # 18322 

Imagen de Chauen
+1
0
-1

 

He borrado esas lineas y he podido hacer el make. Pero al final ponia algun error, he intentado instalar el kmud y me seguia diciendo lo mismo, asi que ya desisto. De todas formas, muchas gracias por todo, ya que cuando escribí el primer comentario era un novato y ahora ya no lo soy tanto :)

+1
0
-1
Imagen de javara
+1
0
-1

Lo del kmud puede ser porque no logra encontrar el /usr/local/qt/include, probá poner en consola:

sudo ln -sf /usr/local/qt/include /usr/include/qt 

esto es para que cuando busque en /usr/include encuentre algo. Se le podría agregar al configure la opción, pero asi debería funcionar.

Veamos. 

 

Javier Aragones

Linux User # 170472

+1
0
-1

Javier Aragones

Linux User # 170472

Ubuntu User # 18322