IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Plateformes Discussion :

[Raspberry Pi] Compilation croisée : bibliothèques dynamiques


Sujet :

Plateformes

  1. #1
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2004
    Messages
    539
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2004
    Messages : 539
    Par défaut [Raspberry Pi] Compilation croisée : bibliothèques dynamiques
    Bonjour,
    Problème: je n'arrive pas à exécuter une application Qt gui sur ma Rpi (Raspberry pi). Voici le message d'erreur:
    error while loading shared libraries: libQtWidgets.so.5: cannot open shared object file: No such file or directory
    Je vous présente comment j'ai procédé, pour que vous puissiez voir ce qui ne va pas dans ma config:
    j'ai installé Qt creator sur mon PC qui fait tourner une distrib Ubuntu J'y ai installé la chaîne de compilation pour arm.

    Pour une application console, tout va bien: le programme compile bien, l'exécutable est chargé dans la Rpi et l'exécution se passe sans problème.
    Pour une appli gui, j'ai apparemment un problème de librairie dynamique. J'ai donc chargé celles-ci sur la Rpi, j'ai créé un fichier Qt.conf dans /etc/ld.so.conf.d dans lequel je précise le chemin des .so de Qt, puis j'ai lancé ldconfig.
    J'ai ensuite vérifié si les librairies étaient bien présentes avec la commande "ldconfig -v". Voici un extrait du résultat:
    /opt/qt5/lib:
    libQtCore.so.5 -> libQtCore.so.5.0.0
    libQtWidgets.so.5 -> libQtWidgets.so.5.0.0
    libQtQuick.so.5 -> libQtQuick.so.5.0.0
    libQtWidger.so.5 est donc bien dans le chemin! Alors pourquoi n'est-elle pas chargée lorsque je lance l'application?

    Merci pour vos lumières.

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 155
    Billets dans le blog
    151
    Par défaut
    Bonjour,

    Effectuez un "file" sur la bibliothèque dites manquante, afin de vérifier qu'elle est bien compilée pour le ARM, sinon, le RPi ne la chargera pas.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2004
    Messages
    539
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2004
    Messages : 539
    Par défaut
    Tout d'abord merci pour la réponse.

    Ces librairies sont issue de qtonpi, avec lequel j'ai configuré la chaine de développement, donc à priori ce sont les bonnes librairies.
    Voici ce que génère la commande file:
    pi@raspi1 /opt/qt5/lib $ file libQtWidgets.so.5
    libQtWidgets.so.5: symbolic link to `libQtWidgets.so.5.0.0'
    pi@raspi1 /opt/qt5/lib $ file libQtWidgets.so.5.0.0
    libQtWidgets.so.5.0.0: ELF 32-bit LSB shared object, ARM, version 1 (SYSV), dynamically linked, BuildID[sha1]=0x25e772226d957760b364cf9cc6c37911d97837a3, stripped
    Ça me semble correct.

  4. #4
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 155
    Billets dans le blog
    151
    Par défaut
    Si vous spécifier la variable LD_LIBRARY_PATH pour indiquer le dossier contenant le chemin menant aux .so de Qt, est-ce que cela change quelque chose (exemple :
    LD_LIBRARY_PATH=/opt/qt5/lib ./exec
    )
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  5. #5
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2004
    Messages
    539
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2004
    Messages : 539
    Par défaut
    je précise que je suis loin d'être expert en GNU/linux.
    Mais je me suis pas mal renseigné avant de poster et j'avais cru comprendre que le fichier ld.so.conf était une meilleure solution qu'utiliser la variable LD_LIBRARY_PATH.

    Quoiqu'il en soit, il fallait en avoir le cœur net et j'ai essayé. Le résultat est identique.

  6. #6
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 155
    Billets dans le blog
    151
    Par défaut
    Hum, je manque d'idée, il va falloir trouver une méthode pour afficher des informations supplémentaires.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  7. #7
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2004
    Messages
    539
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2004
    Messages : 539
    Par défaut
    Peut-être cette discussion serait-elle mieux placée dans un autre forum plus actif de developpez? Tout en restant en lien avec mon problème évidemment.

  8. #8
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 155
    Billets dans le blog
    151
    Par défaut
    Vous pouvez peut être lancé le programme avec strace pour savoir ce qu'il essaie réellement de charger et les erreurs qu'il trouve.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  9. #9
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2004
    Messages
    539
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2004
    Messages : 539
    Par défaut
    C'est fait. Voici la sortie :
    execve("./test_gui", ["./test_gui"], [/* 29 vars */]) = 0
    brk(0) = 0xac7000
    uname({sys="Linux", node="raspi1", ...}) = 0
    access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
    mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x4003a000
    access("/etc/ld.so.preload", R_OK) = 0
    open("/etc/ld.so.preload", O_RDONLY) = 3
    fstat64(3, {st_mode=S_IFREG|0644, st_size=44, ...}) = 0
    mmap2(NULL, 44, PROT_READ|PROT_WRITE, MAP_PRIVATE, 3, 0) = 0x40115000
    close(3) = 0
    open("/usr/lib/arm-linux-gnueabihf/libcofi_rpi.so", O_RDONLY) = 3
    read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\10\4\0\0004\0\0\0"..., 512) = 512
    lseek(3, 3456, SEEK_SET) = 3456
    read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1240) = 1240
    lseek(3, 2537, SEEK_SET) = 2537
    read(3, "A.\0\0\0aeabi\0\1$\0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\24\1\25"..., 47) = 47
    fstat64(3, {st_mode=S_IFREG|0755, st_size=7332, ...}) = 0
    mmap2(NULL, 35276, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x40187000
    mprotect(0x40188000, 28672, PROT_NONE) = 0
    mmap2(0x4018f000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0) = 0x4018f000
    close(3) = 0
    munmap(0x40115000, 44) = 0
    open("/opt/qt5/lib/tls/v6l/vfp/libQtWidgets.so.5", O_RDONLY) = -1 ENOENT (No such file or directory)
    stat64("/opt/qt5/lib/tls/v6l/vfp", 0xbe97fce0) = -1 ENOENT (No such file or directory)
    open("/opt/qt5/lib/tls/v6l/libQtWidgets.so.5", O_RDONLY) = -1 ENOENT (No such file or directory)
    stat64("/opt/qt5/lib/tls/v6l", 0xbe97fce0) = -1 ENOENT (No such file or directory)
    open("/opt/qt5/lib/tls/vfp/libQtWidgets.so.5", O_RDONLY) = -1 ENOENT (No such file or directory)
    stat64("/opt/qt5/lib/tls/vfp", 0xbe97fce0) = -1 ENOENT (No such file or directory)
    open("/opt/qt5/lib/tls/libQtWidgets.so.5", O_RDONLY) = -1 ENOENT (No such file or directory)
    stat64("/opt/qt5/lib/tls", 0xbe97fce0) = -1 ENOENT (No such file or directory)
    open("/opt/qt5/lib/v6l/vfp/libQtWidgets.so.5", O_RDONLY) = -1 ENOENT (No such file or directory)
    stat64("/opt/qt5/lib/v6l/vfp", 0xbe97fce0) = -1 ENOENT (No such file or directory)
    open("/opt/qt5/lib/v6l/libQtWidgets.so.5", O_RDONLY) = -1 ENOENT (No such file or directory)
    stat64("/opt/qt5/lib/v6l", 0xbe97fce0) = -1 ENOENT (No such file or directory)
    open("/opt/qt5/lib/vfp/libQtWidgets.so.5", O_RDONLY) = -1 ENOENT (No such file or directory)
    stat64("/opt/qt5/lib/vfp", 0xbe97fce0) = -1 ENOENT (No such file or directory)
    open("/opt/qt5/lib/libQtWidgets.so.5", O_RDONLY) = 3
    read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0@{\16\0004\0\0\0"..., 512) = 512
    lseek(3, 5650168, SEEK_SET) = 5650168
    read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1080) = 1080
    lseek(3, 5649880, SEEK_SET) = 5649880
    read(3, "A0\0\0\0aeabi\0\1&\0\0\0\0056ZK\0\6\7\10\1\t\1\n\2\22\4\24"..., 49) = 49
    close(3) = 0
    stat64("/opt/qt5/lib", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
    open("/etc/ld.so.cache", O_RDONLY) = 3
    fstat64(3, {st_mode=S_IFREG|0644, st_size=40784, ...}) = 0
    mmap2(NULL, 40784, PROT_READ, MAP_PRIVATE, 3, 0) = 0x400f6000
    close(3) = 0
    access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
    open("/opt/qt5/lib/libQtWidgets.so.5", O_RDONLY) = 3
    read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0@{\16\0004\0\0\0"..., 512) = 512
    lseek(3, 5650168, SEEK_SET) = 5650168
    read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1080) = 1080
    lseek(3, 5649880, SEEK_SET) = 5649880
    read(3, "A0\0\0\0aeabi\0\1&\0\0\0\0056ZK\0\6\7\10\1\t\1\n\2\22\4\24"..., 49) = 49
    close(3) = 0
    open("/lib/arm-linux-gnueabihf/tls/v6l/vfp/libQtWidgets.so.5", O_RDONLY) = -1 ENOENT (No such file or directory)
    stat64("/lib/arm-linux-gnueabihf/tls/v6l/vfp", 0xbe97fce0) = -1 ENOENT (No such file or directory)
    open("/lib/arm-linux-gnueabihf/tls/v6l/libQtWidgets.so.5", O_RDONLY) = -1 ENOENT (No such file or directory)
    stat64("/lib/arm-linux-gnueabihf/tls/v6l", 0xbe97fce0) = -1 ENOENT (No such file or directory)
    open("/lib/arm-linux-gnueabihf/tls/vfp/libQtWidgets.so.5", O_RDONLY) = -1 ENOENT (No such file or directory)
    stat64("/lib/arm-linux-gnueabihf/tls/vfp", 0xbe97fce0) = -1 ENOENT (No such file or directory)
    open("/lib/arm-linux-gnueabihf/tls/libQtWidgets.so.5", O_RDONLY) = -1 ENOENT (No such file or directory)
    stat64("/lib/arm-linux-gnueabihf/tls", 0xbe97fce0) = -1 ENOENT (No such file or directory)
    open("/lib/arm-linux-gnueabihf/v6l/vfp/libQtWidgets.so.5", O_RDONLY) = -1 ENOENT (No such file or directory)
    stat64("/lib/arm-linux-gnueabihf/v6l/vfp", 0xbe97fce0) = -1 ENOENT (No such file or directory)
    open("/lib/arm-linux-gnueabihf/v6l/libQtWidgets.so.5", O_RDONLY) = -1 ENOENT (No such file or directory)
    stat64("/lib/arm-linux-gnueabihf/v6l", 0xbe97fce0) = -1 ENOENT (No such file or directory)
    open("/lib/arm-linux-gnueabihf/vfp/libQtWidgets.so.5", O_RDONLY) = -1 ENOENT (No such file or directory)
    stat64("/lib/arm-linux-gnueabihf/vfp", 0xbe97fce0) = -1 ENOENT (No such file or directory)
    open("/lib/arm-linux-gnueabihf/libQtWidgets.so.5", O_RDONLY) = -1 ENOENT (No such file or directory)
    stat64("/lib/arm-linux-gnueabihf", {st_mode=S_IFDIR|0755, st_size=12288, ...}) = 0
    open("/usr/lib/arm-linux-gnueabihf/tls/v6l/vfp/libQtWidgets.so.5", O_RDONLY) = -1 ENOENT (No such file or directory)
    stat64("/usr/lib/arm-linux-gnueabihf/tls/v6l/vfp", 0xbe97fce0) = -1 ENOENT (No such file or directory)
    open("/usr/lib/arm-linux-gnueabihf/tls/v6l/libQtWidgets.so.5", O_RDONLY) = -1 ENOENT (No such file or directory)
    stat64("/usr/lib/arm-linux-gnueabihf/tls/v6l", 0xbe97fce0) = -1 ENOENT (No such file or directory)
    open("/usr/lib/arm-linux-gnueabihf/tls/vfp/libQtWidgets.so.5", O_RDONLY) = -1 ENOENT (No such file or directory)
    stat64("/usr/lib/arm-linux-gnueabihf/tls/vfp", 0xbe97fce0) = -1 ENOENT (No such file or directory)
    open("/usr/lib/arm-linux-gnueabihf/tls/libQtWidgets.so.5", O_RDONLY) = -1 ENOENT (No such file or directory)
    stat64("/usr/lib/arm-linux-gnueabihf/tls", 0xbe97fce0) = -1 ENOENT (No such file or directory)
    open("/usr/lib/arm-linux-gnueabihf/v6l/vfp/libQtWidgets.so.5", O_RDONLY) = -1 ENOENT (No such file or directory)
    stat64("/usr/lib/arm-linux-gnueabihf/v6l/vfp", 0xbe97fce0) = -1 ENOENT (No such file or directory)
    open("/usr/lib/arm-linux-gnueabihf/v6l/libQtWidgets.so.5", O_RDONLY) = -1 ENOENT (No such file or directory)
    stat64("/usr/lib/arm-linux-gnueabihf/v6l", 0xbe97fce0) = -1 ENOENT (No such file or directory)
    open("/usr/lib/arm-linux-gnueabihf/vfp/libQtWidgets.so.5", O_RDONLY) = -1 ENOENT (No such file or directory)
    stat64("/usr/lib/arm-linux-gnueabihf/vfp", 0xbe97fce0) = -1 ENOENT (No such file or directory)
    open("/usr/lib/arm-linux-gnueabihf/libQtWidgets.so.5", O_RDONLY) = -1 ENOENT (No such file or directory)
    stat64("/usr/lib/arm-linux-gnueabihf", {st_mode=S_IFDIR|0755, st_size=20480, ...}) = 0
    open("/lib/tls/v6l/vfp/libQtWidgets.so.5", O_RDONLY) = -1 ENOENT (No such file or directory)
    stat64("/lib/tls/v6l/vfp", 0xbe97fce0) = -1 ENOENT (No such file or directory)
    open("/lib/tls/v6l/libQtWidgets.so.5", O_RDONLY) = -1 ENOENT (No such file or directory)
    stat64("/lib/tls/v6l", 0xbe97fce0) = -1 ENOENT (No such file or directory)
    open("/lib/tls/vfp/libQtWidgets.so.5", O_RDONLY) = -1 ENOENT (No such file or directory)
    stat64("/lib/tls/vfp", 0xbe97fce0) = -1 ENOENT (No such file or directory)
    open("/lib/tls/libQtWidgets.so.5", O_RDONLY) = -1 ENOENT (No such file or directory)
    stat64("/lib/tls", 0xbe97fce0) = -1 ENOENT (No such file or directory)
    open("/lib/v6l/vfp/libQtWidgets.so.5", O_RDONLY) = -1 ENOENT (No such file or directory)
    stat64("/lib/v6l/vfp", 0xbe97fce0) = -1 ENOENT (No such file or directory)
    open("/lib/v6l/libQtWidgets.so.5", O_RDONLY) = -1 ENOENT (No such file or directory)
    stat64("/lib/v6l", 0xbe97fce0) = -1 ENOENT (No such file or directory)
    open("/lib/vfp/libQtWidgets.so.5", O_RDONLY) = -1 ENOENT (No such file or directory)
    stat64("/lib/vfp", 0xbe97fce0) = -1 ENOENT (No such file or directory)
    open("/lib/libQtWidgets.so.5", O_RDONLY) = -1 ENOENT (No such file or directory)
    stat64("/lib", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
    open("/usr/lib/tls/v6l/vfp/libQtWidgets.so.5", O_RDONLY) = -1 ENOENT (No such file or directory)
    stat64("/usr/lib/tls/v6l/vfp", 0xbe97fce0) = -1 ENOENT (No such file or directory)
    open("/usr/lib/tls/v6l/libQtWidgets.so.5", O_RDONLY) = -1 ENOENT (No such file or directory)
    stat64("/usr/lib/tls/v6l", 0xbe97fce0) = -1 ENOENT (No such file or directory)
    open("/usr/lib/tls/vfp/libQtWidgets.so.5", O_RDONLY) = -1 ENOENT (No such file or directory)
    stat64("/usr/lib/tls/vfp", 0xbe97fce0) = -1 ENOENT (No such file or directory)
    open("/usr/lib/tls/libQtWidgets.so.5", O_RDONLY) = -1 ENOENT (No such file or directory)
    stat64("/usr/lib/tls", 0xbe97fce0) = -1 ENOENT (No such file or directory)
    open("/usr/lib/v6l/vfp/libQtWidgets.so.5", O_RDONLY) = -1 ENOENT (No such file or directory)
    stat64("/usr/lib/v6l/vfp", 0xbe97fce0) = -1 ENOENT (No such file or directory)
    open("/usr/lib/v6l/libQtWidgets.so.5", O_RDONLY) = -1 ENOENT (No such file or directory)
    stat64("/usr/lib/v6l", 0xbe97fce0) = -1 ENOENT (No such file or directory)
    open("/usr/lib/vfp/libQtWidgets.so.5", O_RDONLY) = -1 ENOENT (No such file or directory)
    stat64("/usr/lib/vfp", 0xbe97fce0) = -1 ENOENT (No such file or directory)
    open("/usr/lib/libQtWidgets.so.5", O_RDONLY) = -1 ENOENT (No such file or directory)
    stat64("/usr/lib", {st_mode=S_IFDIR|0755, st_size=12288, ...}) = 0
    writev(2, [{"./test_gui", 10}, {": ", 2}, {"error while loading shared libra"..., 36}, {": ", 2}, {"libQtWidgets.so.5", 17}, {": ", 2}, {"cannot open shared object file", 30}, {": ", 2}, {"No such file or directory", 25}, {"\n", 1}], 10./test_gui: error while loading shared libraries: libQtWidgets.so.5: cannot open shared object file: No such file or directory
    ) = 127
    exit_group(127) = ?
    En fait, pratiquement toutes les tentatives d'ouvertures de fichiers se soldent par un échec.

    Mais d'où sortent ces fichiers et répertoires qui n'existent nulle part, ni sur la plate forme de développement, ni sur celle d'exécution? (toutes deux basées sur une debian et avec les librairies déployées de manière identiques)

  10. #10
    Inactif
    Profil pro
    Inscrit en
    Août 2013
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 29
    Par défaut
    Quelle version de Qt pour ARM ? Les seules versions ARM des binaires officiels sont pour Android
    Il y a Qt dans dans paquet de Raspberry Pi, mais c'est du Qt 4
    Il faut compiler soi même Qt (avec quelques modifs pour GL ES). Voir ce blog, il est à jour : http://www.ics.com/blog/building-qt-5-raspberry-pi

  11. #11
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2004
    Messages
    539
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2004
    Messages : 539
    Par défaut
    Bonsoir,

    comme indiqué dans mon message#3 il s'agit de qtonpi qui comme son nom l'indique permet de développer avec Qt sur une Rpi:
    http://qt-project.org/wiki/Qt-RaspberryPi

    Il s'agit d'une version 5.0.0 de Qt

  12. #12
    Inactif
    Profil pro
    Inscrit en
    Août 2013
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 29
    Par défaut
    QtonPi n'est qu'un projet, il ne fournit pas de binaires, mais les explications pour compiler Qt 5. Et j'ai des doutes sur le fait que cette page (et les pages liées) soient à jour

    Je te conseille de suivre la méthode présentée dans cette article, il a fonctionné chez moi (il y a en particulier un problème avec les drivers GL je crois)
    Tu as aussi la possibilité de compiler directement Qt 5 sur la RPi (c'est un peu lent... mais faisable). C'est ce que je fais (création du code en version desktop + transfert fichiers sur RPi + compilation sur RPi, vie SSH)

    Sinon, peux tu détailler ta procédure de compilation que tu as utilisé ?

    Dans tous les cas, je crois en effet à un problème de compatibilité des libs - même si c'est bien du ARM.

  13. #13
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2004
    Messages
    539
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2004
    Messages : 539
    Par défaut
    Je te conseille de suivre la méthode présentée dans cette article
    Lequel?

    Tu as aussi la possibilité de compiler directement Qt 5 sur la RPi (c'est un peu lent... mais faisable)
    C'est en effet ce que je cherche à éViter. L'attente devient pénible assez rapidement.

    Sinon, peux tu détailler ta procédure de compilation que tu as utilisé ?
    L'appli est le squelette de base d'une appli gui Qt. Pour les options de compilation, voici les captures d'écran:
    Images attachées Images attachées    

  14. #14
    Inactif
    Profil pro
    Inscrit en
    Août 2013
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 29
    Par défaut
    L'article de blog que j'ai donné.
    Et là, tu sembles utiliser une version non arm de Qt (celle qui est dans opt/qt5 et pas celle dans qtonpi)
    Quand je parlais de la procédure de compilation, je parlais de celle de Qt

  15. #15
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2004
    Messages
    539
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2004
    Messages : 539
    Par défaut
    L'article de blog que j'ai donné.
    Ok, si je n'arrive pas à faire marcher qtonpi, j'essaierai cette solution.

    Et là, tu sembles utiliser une version non arm de Qt (celle qui est dans opt/qt5 et pas celle dans qtonpi
    ce dossier est issu de l'archive Qtonpi, donc je ne vois pas pourquoi il ne conviendrait pas.

  16. #16
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2004
    Messages
    539
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2004
    Messages : 539
    Par défaut
    open("/lib/arm-linux-gnueabihf/tls/v6l/vfp/libQtWidgets.so.5", O_RDONLY) = -1 ENOENT (No such file or directory)
    Je ne comprends toujours pas d'où peut sortir ce genre de dossier /tls/vfp/
    Enfin bon ...

    Du coup je me retourne vers l'installation préconisée par le blog.
    Au passage je ne comprends pas pourquoi on ne peut pas faire une bête installation sur la Rpi au lieu de régénérer une nouvelle image parce que ça va m'obliger à réinstaller tout ce que j'avais déjà installé sur la carte SD.

    Allez hop, c'est parti: je vais installer l'hôte. Pas de bol, la chaine de développement (http://swap.tsmt.eu/gcc-4.7-linaro-rpi-gnueabihf.tbz) n'existe plus.
    J'essaie de la trouver ailleurs: http://blueocean.qmh-project.org/gcc...-gnueabihf.tbz
    Disparue également.
    J'en ai marre de la volatilité de ces sites. J'avais déjà dû abandonner des cartes FOX tournant sous linux pour les mêmes raisons. Ca devient exaspérant.

    Bref, je suis un peu coincé.

  17. #17
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 155
    Billets dans le blog
    151
    Par défaut
    Une façon de faire, c'est de garder les fichiers téléchargés, tel quel, dans un coin (et puis, cela sauve en cas de connexion lente).
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  18. #18
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2004
    Messages
    539
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2004
    Messages : 539
    Par défaut
    le problème, c'est quand on arrive trop tard.

  19. #19
    Inactif
    Profil pro
    Inscrit en
    Août 2013
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 29
    Par défaut
    Je crois que je n'ai pas non plus gardé une version de ces fichiers. Je vais vérifier.

    Je vais voir pour mettre à jour la doc pour la sortie de Qt 5.2

Discussions similaires

  1. Réponses: 5
    Dernier message: 22/05/2012, 11h48
  2. CMake : compilation de bibliothèques dynamiques
    Par sunmat dans le forum Systèmes de compilation
    Réponses: 1
    Dernier message: 02/11/2011, 22h24
  3. Réponses: 1
    Dernier message: 01/12/2007, 21h03
  4. Problème avec la "Gestion des bibliothèques dynamiques"
    Par GoustiFruit dans le forum Delphi
    Réponses: 15
    Dernier message: 31/05/2006, 09h54
  5. Compiler une bibliothèque
    Par petdelascar dans le forum Windows
    Réponses: 1
    Dernier message: 10/12/2005, 17h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo