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

Lazarus Pascal Discussion :

[2.0.6 / RPi] Error while linking [Lazarus]


Sujet :

Lazarus Pascal

  1. #1
    Membre éprouvé
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 022
    Points : 1 049
    Points
    1 049
    Par défaut [2.0.6 / RPi] Error while linking
    Bonjour à toutes et à tous,

    J'ai une application que j'ai compilée sous Windows XP (Lazarus 1.6.4), Windows 10 (Lazarus 2.0.6), Ubuntu 18.4.3 (Lazarus 2.0.6), Raspberry Pi 3B+ avec Stretch (Lazarus 1.6.2).

    Je viens d'installer Buster et Lazarus 2.0.6 sur mon Raspberry et là, cela ne "link" plus. J'ai le message suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Compilation diu projet - Cible : GPS_Nav : Code de sortie 1 - Erreurs : 1
    GPS_Nav.lpr(22, 0) Error while linking // Nota il n'y a que 21 lignes !
    Une idée du problème ?

    Cordialement.

    Pierre.

  2. #2
    Expert confirmé
    Avatar de BeanzMaster
    Homme Profil pro
    Amateur Passionné
    Inscrit en
    Septembre 2015
    Messages
    1 899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Amateur Passionné
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Septembre 2015
    Messages : 1 899
    Points : 4 346
    Points
    4 346
    Billets dans le blog
    2
    Par défaut
    Salut Pierre

    A mon avis, soit, c'est une question de droit d’accès du dossier de sortie, soit il faut que tu vérifies le fichier fpc.cfg et t'assurer que les chemins vers gcc sont bon.
    Sous Buster tu compiles ton projet en 64 ou 32 bit ? Tu avais déjà eu un soucis de ce type entre 32 et 64 bit sous Buster, si je me souviens bien.

    A+

    Jérôme
    • "L'Homme devrait mettre autant d'ardeur à simplifier sa vie qu'il met à la compliquer" - Henri Bergson
    • "Bien des livres auraient été plus clairs s'ils n'avaient pas voulu être si clairs" - Emmanuel Kant
    • "La simplicité est la sophistication suprême" - Léonard De Vinci
    • "Ce qui est facile à comprendre ou à faire pour toi, ne l'est pas forcément pour l'autre." - Mon pèrei

    Mes projets sur Github - Blog - Site DVP

  3. #3
    Membre éprouvé
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 022
    Points : 1 049
    Points
    1 049
    Par défaut
    Citation Envoyé par BeanzMaster Voir le message
    ... A mon avis, soit, c'est une question de droit d’accès du dossier de sortie, soit il faut que tu vérifies le fichier fpc.cfg et t'assurer que les chemins vers gcc sont bon. ...
    A priori, rien de tout cela. J'ai d'autres applications qui, elles, ne posent aucun problème. Les droits sur ces différents fichiers sont les mêmes.

    Pour ce qui concerne les liens vers gcc, j'ai, dans fpc.cfg :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    -Fl/usr/lib/fpc/$fpcversion/lib/$FPCTARGET
    Or, dans /usr/lib/fpc/$fpcversion/, je n'ai pas de répertoire /lib.

    Le problème est que, sur mon PC Windows 10, j'ai la même chose et que je n'ai aucun problème de compilation.

    Il semble que le problème vient du composant OpenGL. En effet, lorsque j'essaie de l'installer, j'ai une erreur à la recompilation de l'IDE dans les lignes 161, 153, 102, ... (si je les mets en commentaire l'une après l'autre) du fichier lazarus.pp.

    Pour autant, ce composant apparaît dans la liste des paquets installés, mais n'apparaît pas dans la palette de composants.

    Donc, je n'installe pas cette bibliothèque et me contente de l'option "utiliser dans ce projet" ... à la fin de la compilation, j’obtiens l'erreur de linkage dite précédemment.

    Je me suis dit que cela pouvait provenir du fait que ce composant venait de la liste des composants du répertoire "components" de lazarus. A titre d'essai, j'en ai installé un autre : "plotfunction". J'ai eu le même problème de recompilation de l'IDE !! mais cette fois, ce composant est apparu à la fois dans la liste des paquets installés et dans la palette des composants. De plus, j'ai pu le poser sur une fiche, compiler cette application et l'exécuter.

    NOTA : j'ai installé de composants que j'avais créés sans que cela pose de problème de recompilation de l'IDE.

    En conclusion, je pense donc que c'est bien le composant OpenGL qui pose problème. Que faire ?

    Cordialement.

    Pierre.

  4. #4
    Expert confirmé
    Avatar de BeanzMaster
    Homme Profil pro
    Amateur Passionné
    Inscrit en
    Septembre 2015
    Messages
    1 899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Amateur Passionné
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Septembre 2015
    Messages : 1 899
    Points : 4 346
    Points
    4 346
    Billets dans le blog
    2
    Par défaut
    Si je me souviens bien pour opengl avec Linux, il faut vérifier que le driver MESA (libgl1-mesa-dev) soit bien installé. Tu avais déjà eu ce problème, si je ne me trompe pas lors de tes premiers essais avec Buster.

    Quel est cet autre "plotfunction" dont tu parles ?
    • "L'Homme devrait mettre autant d'ardeur à simplifier sa vie qu'il met à la compliquer" - Henri Bergson
    • "Bien des livres auraient été plus clairs s'ils n'avaient pas voulu être si clairs" - Emmanuel Kant
    • "La simplicité est la sophistication suprême" - Léonard De Vinci
    • "Ce qui est facile à comprendre ou à faire pour toi, ne l'est pas forcément pour l'autre." - Mon pèrei

    Mes projets sur Github - Blog - Site DVP

  5. #5
    Membre éprouvé
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 022
    Points : 1 049
    Points
    1 049
    Par défaut
    Citation Envoyé par BeanzMaster Voir le message
    Si je me souviens bien pour opengl avec Linux, il faut vérifier que le driver MESA (libgl1-mesa-dev) soit bien installé. ...
    J'ai ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ii  libgl1:armhf          1.3.0-7~bpo10+1       armhf        Vendor neutral GL dispatch library -- legacy GL support
    ii  libgl1-mesa-dri:armhf 19.3.2-1~bpo10+1~rpt1 armhf        free implementation of the OpenGL API -- DRI modules
    un  libgl1-mesa-glx       <aucune>              <aucune>     (aucune description n'est disponible)
    Je suppose que cà ne suffit pas ?

    Mais cette librairie est-elle nécessaire à la compliation du programme ou seulement pour que OpenGL fonctionne ?

    En tout état de cause, mon application que j'avais compilée sous Stretch fonctionne parfaitement dans l'environnement Buster.

    Citation Envoyé par BeanzMaster Voir le message
    ... Quel est cet autre "plotfunction" dont tu parles ?
    C'est un composant que j'ai choisi au hasard dans la liste des composants de lazarus et qui se trouve dans le répertoire lazarus/components.

    Cordialement.

    Pierre.

  6. #6
    Expert confirmé
    Avatar de BeanzMaster
    Homme Profil pro
    Amateur Passionné
    Inscrit en
    Septembre 2015
    Messages
    1 899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Amateur Passionné
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Septembre 2015
    Messages : 1 899
    Points : 4 346
    Points
    4 346
    Billets dans le blog
    2
    Par défaut
    Il faut bien choisir libgl1-mesa-dev que tu n'as pas dans la liste et oui c'est pour Opengl.
    Le problème de linking avec ton application doit venir de là, vu que tes autres applications se compilent normalement
    C'est comme sous windows si tu utilises des DLLs dans une une application.
    Si elles sont liées statistiquement cela provoquera une erreur à la compilation.
    Si elles sont liées dynamiquement l'application se compilera, mais "ne s’exécutera pas" (elle se lancera et se refermera aussitôt) et suivant le code aucun message d'erreur apparaîtra.

    A vérifier quand même les chemins de gcc dans fpc.cfg comme dans l'ancien post que j'ai mis en lien. C'est le principal problème que je connais qui apparaît sous un environnement Linux pour le message "Error while linking". Et l'autre possibilité c'est que un des fichiers de sortie est utilisé par le système et donc sont accès est bloqué.

    Assures toi également que dans tes options de compilation personnalisées -dUseCThreads soit déclaré.

    Une fois "libgl1-mesa-dev" installé relances ton système et essayes de compiler, sans aucune autre application à part Lazarus, cela devrait fonctionner. Sinon c'est qu'un dossier à Lazarus/fpc n'a pas les bons droits d'accès. A part ça je ne vois rien d'autre.

    Mais cette erreur est bizarre, surtout par rapport à ta description de l'installation du composant "plotfunction" qui au final est installé et fonctionne

    A+
    • "L'Homme devrait mettre autant d'ardeur à simplifier sa vie qu'il met à la compliquer" - Henri Bergson
    • "Bien des livres auraient été plus clairs s'ils n'avaient pas voulu être si clairs" - Emmanuel Kant
    • "La simplicité est la sophistication suprême" - Léonard De Vinci
    • "Ce qui est facile à comprendre ou à faire pour toi, ne l'est pas forcément pour l'autre." - Mon pèrei

    Mes projets sur Github - Blog - Site DVP

  7. #7
    Membre éprouvé
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 022
    Points : 1 049
    Points
    1 049
    Par défaut
    Citation Envoyé par BeanzMaster Voir le message
    Il faut bien choisir libgl1-mesa-dev que tu n'as pas dans la liste et oui c'est pour Opengl. ...
    J'ai trouvé cette librairie avec l'option "Add/Remove Software" de mon Raspberry, je l'ai installée et, Oh merveille, t'es trop fort , le composant s'est installé, j'ai pu compiler mon application et l'exécuter.

    Merci encore.

    Pierre.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Error while linking
    Par ChPr dans le forum Raspberry Pi
    Réponses: 4
    Dernier message: 06/06/2020, 18h36
  2. [Lazarus] Impossible d'installer un paquet - Error while linking
    Par thewolf dans le forum Lazarus
    Réponses: 5
    Dernier message: 30/04/2020, 15h37
  3. [Free Pascal] Error while linking
    Par zafo dans le forum Free Pascal
    Réponses: 18
    Dernier message: 01/04/2020, 14h57
  4. [Lazarus] [2.0.6/Ubuntu 18.0.4] Erreur "Error while linking"
    Par ChPr dans le forum Lazarus
    Réponses: 2
    Dernier message: 04/02/2020, 10h35
  5. [Lazarus] [Xubuntu] Error while Linking avec PascalMagick
    Par LaurentC33 dans le forum Lazarus
    Réponses: 10
    Dernier message: 07/06/2016, 09h11

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