Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626

    [Qt - Linux] Versioni delle Qt

    Ciao a tutti,
    Ho sviluppato un applicativo con le Qt versione 4.8. Dato che utilizzo le funzioni di network volevo provarlo su due pc in rete. Uno di questi usa ancora ubuntu 10.04 e ha le Qt 4.6. Lanciando l'eseguibile ottengo un

    Undefined reference to 'QListData::detach_grow'

    Presumo che questo dipenda dalle diverse versioni differenti e quindi dovrei ricompilarlo con le qt 4.6.

    Ma a questo punto mi domando qual'è l'approccio giusto in questi casi visto che non so che versione di qt si ritrova una macchina.
    Mi domando anche che succederà se si cerca di far girare il software su delle future qt 5

    Insomma, c'è un modo per avere una compatibilità maggiore tra le varie release di qt?

    Grazie

  2. #2
    Ciao, molto semplice.
    Nel file .pro inserico la sezione

    unix:!mac {
    LIBS += -Wl,-rpath=\\\$$ORIGIN/libs
    }

    Dopodiché distribuirò un eseguibile che ha come sotto cartella la cartella libs che contiene le librerie necessarie. In questo modo non c'è il problema di avere o meno le Qt installate e della stessa versione.
    Nel mio sito trovi alcuni esempi.

    Ciao ciao e ben venuto nel fantastico Qt world.

  3. #3
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Ciao Denis...
    quasta cosa di rpath l'avevo fatta per le qwt (tra l'altro me l'avevi suggerita proprio tu )
    cmq facendo ldd, ottengo

    libQtGui.so.4
    libQtNetwork.so.4
    libQtCore.so.4
    libQtSvg.so.4

    Oltre ad molte altre lib (libstdc++.so.6 , libglib-2.0.so.0, etc)

    Secondo te basta che ci copio queste?

  4. #4

  5. #5
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Su ubuntu 10.04 se provo ad eseguire mi dice:

    /lib/tls/i686/cmov/libc.so.6: version `GLIBC_2.15' not found (required by /home/emilio/Scrivania/test/libs/libQtGui.so.4)
    /lib/tls/i686/cmov/libc.so.6: version `GLIBC_2.15' not found (required by /home/emilio/Scrivania/test/libs/libQtNetwork.so.4)
    /lib/tls/i686/cmov/libc.so.6: version `GLIBC_2.15' not found (required by /home/emilio/Scrivania/test/libs/libQtCore.so.4)

  6. #6
    Ciao, significa che hai tentato di eseguire il programma su un pc con libc troppo datato. Ad esempio io ho le librerie compilate su Debian 6. Essendo un sistema "vecchio" i programmi funzionano sugli altri sistemi con libc uguale o più recente.

  7. #7
    Esatto, tipicamente si compila sulla LTS correntemente supportata più "antica" proprio per questo motivo.
    Amaro C++, il gusto pieno dell'undefined behavior.

  8. #8
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Lo devo proprio aggiornare quel pc ...

    Cmq dovrei stare (relativamente) a posto per le distro nuove o future, giusto ?

  9. #9
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Originariamente inviato da MItaly
    Esatto, tipicamente si compila sulla LTS correntemente supportata più "antica" proprio per questo motivo.
    Quindi conviene che compilo tutto sulla ubuntu (se non sbaglio la 10.04 è una lts) ... ma ci possono essere incompatibilità con le versioni nuove ?

  10. #10
    Purtroppo Linux non è come Windows, è un po' più delicato da questo punto di vista.
    Prova a scaricare questo ed a vedere se si apre:
    http://www.denisgottardello.it/Backu...kupToLinux.php

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.