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 :

[Version 1.6] Erreur de compilation : code 256 ? [Lazarus]


Sujet :

Lazarus Pascal

  1. #1
    Membre à l'essai
    Inscrit en
    Octobre 2004
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 19
    Points : 15
    Points
    15
    Par défaut [Version 1.6] Erreur de compilation : code 256 ?
    Bonjour à tous,

    Je viens d'installer une version 1.6 de Lazarus, et celle-ci me donne du fil à retordre sur l'un de mes projets. Voici :
    Depuis une install neuve, import des composants suivants: Indy10, Sqlit3Laz, LazSinapse40. Les composants se sont apparemment installés correctement.
    Ouverture du projet : OK pas de messages.
    Compilation du projet : la console de message me retourne :
    • Compilation du projet -Cible : Projet : code de sortie 256-erreurs : 1
    • Fatal: Compilation aborted


    Sur un projet vierge, la compilation se passe correctement, donc mon soucis fait parti du projet.
    J'ai tenté une recherche sur ce code mais n'ai rien trouvé de satisfaisant (j'ai sûrement mal cherché)...

    Question : C'est quoi se code 256 ???? et quelqu'un pourrait-il me donner une piste de recherche car je tourne en rond...

    Vous remerciant.


    Lazarus 1.6
    fpc 3.0.0
    Compilateur fpc
    Debug gdb
    Ubuntu 16.04 Lts tout frais
    Projet issu d'une version Lazarus 1.2.6

  2. #2
    Membre confirmé

    Homme Profil pro
    Autre
    Inscrit en
    Novembre 2015
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Novembre 2015
    Messages : 145
    Points : 625
    Points
    625
    Par défaut
    A priori, c'est un code d'erreur (i.e. exit code) renvoyé par le "cœur" du compilateur: pp386.exe ou autre...

    Je ne suis pas certain que ces codes d'erreurs aient une signification précise et unique: je pense (mais je peux me tromper) qu'ils correspondent plutôt à des catégories d'erreurs lors de la compilation.

    Ceci étant, puisque vous utilisez manifestement Lazarus, vous pourriez demander à copier tous les messages issus de la compilation pour tenter d'avoir plus d'informations sur l'origine de l'erreur.

    Dans la console "Messages": clic droit -> "Copier" -> "Copier les messages (Tous/originaux) dans le presse-papier"

  3. #3
    Membre à l'essai
    Inscrit en
    Octobre 2004
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 19
    Points : 15
    Points
    15
    Par défaut
    Bonjour FChrisF et merci d'avoir répondu. Merci pour l'astuce, je n'avais jamais eu l'idée d’utiliser cette fonction, je cherchais les log d'erreur du compilateur mais je cherchais trop loin .
    Le fichier me donne 214253 lignes les dernières me donne ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    [4.117] /home/alain/code/alarmejt-code/trunk/ulocator.pas(145,1) Fatal: (10026) There were 1 errors compiling module, stopping
    [4.117] Searching file ualarmejt.pas... found
    [4.117] Searching file uudp.pas... found
    [4.117] Searching file umacro.pas... found
    [4.117] Searching file uhaminfo.pas... found
    [4.117] Searching file ucontact.pas... found
    [4.117] Searching file ufonction.pas... found
    [4.395] Fatal: (1018) Compilation aborted
    Error: /usr/bin/ppcx64 returned an error exitcode
    La ligne incriminée par le Fatal (145,1) est un uses vers mes fonctions ... Je vais donc regarder de ce côté.

    Par contre, après avoir fait un nettoyer et compiler, le message est le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    [0.082] Searching file /home/alain/tmp/testcompileroptions.pas... found
    [0.082] (PROGRAM)  (3106) Parsing implementation of /home/alain/tmp/testcompileroptions.pas
    [0.082] Fatal: (2003) Syntax error, "BEGIN" expected but "end of file" found
    [0.105] Fatal: (1018) Compilation aborted
    Error: /usr/bin/ppcx64 returned an error exitcode
    et dans la fenêtre message de Lazarus : Test : compilation de fichier vide (même code)
    puis : IdStream.pas(29,3) Fatal: Impossible de trouver IdStreamVCL utilisé par IdStream.

    Je vous remercie de votre aide et continu mes recherches de ce côté également.

  4. #4
    Membre à l'essai
    Inscrit en
    Octobre 2004
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 19
    Points : 15
    Points
    15
    Par défaut
    Bon apparemment cela viendrait d'Indy10... Mais je serais heureux de pouvoir partager si quelqu'un est passé par le même soucis ...

    Merci de nouveau

  5. #5
    Membre confirmé

    Homme Profil pro
    Autre
    Inscrit en
    Novembre 2015
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Novembre 2015
    Messages : 145
    Points : 625
    Points
    625
    Par défaut
    214253 lignes, cela fait beaucoup.

    Je n'utilise pas FreePascal/Lazarus sous Linux, donc je ne peux rien affirmer, mais tout ceci ne correspondrait-il pas plutôt à une tentative de recompilation de l'EDI? Particulièrement si un des packages n'est pas correctement installé (Indy au hasard - cf. ci-après).


    Qu'y-a-t-il avant le message concernant votre unité "ulocator.pas" ? Rien concernant une erreur plus précise ? A moins que cela soit encore une fois le résultat d'une mauvaise compilation de l'IDE/la LCL avec vos packages.


    A priori, le message concernant l'erreur pour l'unité "testcompileroptions.pas" est normal. Dans le code source on trouve en effet cela:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    function TCheckCompilerOptsDlg.CheckCompileBogusFile(
      const CompilerFilename: string): TModalResult;
    var
      TestDir: String;
      BogusFilename: String;
      CmdLineParams: String;
      CompileTool: TAbstractExternalTool;
    begin
      // compile bogus file
      FTest:=cotCompileBogusFiles;
      LabelTest.Caption:=dlgCCOTestCompilingEmptyFile;
     
      // get Test directory
      TestDir:=AppendPathDelim(LazarusIDE.GetTestBuildDirectory);
      if not DirPathExists(TestDir) then begin
        IDEMessageDialog(lisCCOInvalidTestDir,
          Format(lisCCOCheckTestDir,[LineEnding]),
          mtError,[mbCancel]);
        Result:=mrCancel;
        exit;
      end;
      // create bogus file
      BogusFilename:=CreateNonExistingFilename(TestDir+'testcompileroptions.pas');
      if not CreateEmptyFile(BogusFilename) then begin
        IDEMessageDialog(lisCCOUnableToCreateTestFile,
          Format(lisCCOUnableToCreateTestPascalFile,[BogusFilename]),
          mtError,[mbCancel]);
        Result:=mrCancel;
        exit;
      end;
     
      ...
    Mais ceci concerne l'IDE Lazarus: on en revient toujours au même problème...


    Le message d'erreur lié à Indy (en effet IdStream et IdStreamVCL sont des unités appartenant à Indy) semble problématique. Il ressemble au bug connu lors de l'installation d'Indy (c'est pourquoi il faut d'ailleurs compiler 2 fois ce package lors de l'installation).

    L'installation du package Indy s'est-elle déroulée sans problèmes de votre côté ? Voyez-vous les composants d'Indy dans l'EDI Lazarus ? Ou bien utilisez-vous directement les classes d'Indy en ajoutant les "paths" correspondants à votre projet ? Et au cas où, quelle version d'Indy utilisez-vous ? Une version récente téléchargée depuis le site "fulgan" (au jour d'aujourd'hui, la version courante est la version 10.6.2 rev r5362 par exemple) ?

  6. #6
    Membre à l'essai
    Inscrit en
    Octobre 2004
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 19
    Points : 15
    Points
    15
    Par défaut
    Bonjour,

    Après une bonne nuit de sommeil... rien n'avance. Bon je vais répondre à vos questions :

    >>> Qu'y-a-t-il avant le message concernant votre unité "ulocator.pas" ? Rien concernant une erreur plus précise ?
    Alors si justement je viens de découvrir ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    [4.242] /home/alain/code/alarmejt-code/trunk/ulocator.pas(41,1) (ulocator) (3105) Parsing interface of unit ulocator
    100 193.127/197.216 Kb Used
    [4.246] /home/alain/code/alarmejt-code/trunk/ulocator.pas(132,39) Error: (3337) Default values can only be specified for value, const and constref parameters
    [4.246] /home/alain/code/alarmejt-code/trunk/ulocator.pas(145,1) Fatal: (10026) There were 1 errors compiling module, stopping
    [4.246] Searching file ualarmejt.pas... found
    [4.246] Searching file uudp.pas... found
    [4.246] Searching file umacro.pas... found
    [4.246] Searching file uhaminfo.pas... found
    [4.246] Searching file ucontact.pas... found
    [4.246] Searching file ufonction.pas... found
    [4.520] Fatal: (1018) Compilation aborted
    Error: /usr/bin/ppcx64 returned an error exitcode
    La ligne incriminée est la suivante il s'agit d'une déclaration de procédure privée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    procedure drawloc(var img: tImage=nil; loc: String = 'AR09');
    l'erreur données (132,39) pointe sur le nil. Bien sur si je supprime la procédure et son appel, la compilation du projet se fait correctement. Cette fonction me permet de dessiner sur une carte. Ceci fonctionnait correctement sous la précédente version de Lazarus.

    >>>A moins que cela soit encore une fois le résultat d'une mauvaise compilation de l'IDE/la LCL avec vos packages.
    Je pense qu'il avait de cela aussi. J'ai repris toute l'install des packages, supprimé le répertoire .Lazarus et changé de version d'indy, apparemment cela à l'air de fonctionner à présent. Je croise les doigts...

    >>>A priori, le message concernant l'erreur pour l'unité "testcompileroptions.pas" est normal. Dans le code source on trouve en effet cela:
    OK pas de soucis.

    >>>Le message d'erreur lié à Indy (en effet IdStream et IdStreamVCL sont des unités appartenant à Indy) semble problématique. Il ressemble au bug connu lors de l'installation d'Indy (c'est pourquoi il faut d'ailleurs compiler 2 fois ce package lors de l'installation).
    >>>L'installation du package Indy s'est-elle déroulée sans problèmes de votre côté ? Voyez-vous les composants d'Indy dans l'EDI Lazarus ? Ou bien utilisez-vous directement les classes d'Indy en ajoutant les "paths" correspondants à votre projet ? Et au cas où, quelle version d'Indy >>>utilisez-vous ? Une version récente téléchargée depuis le site "fulgan" (au jour d'aujourd'hui, la version courante est la version 10.6.2 rev r5362 par exemple) ?
    La version d'Indy au départ était la 10.6.2 rev 5274, c'était la seule version capable de s'installer sans trop de problèmes sur ma version antérieure de Lazarus (1.2.4) en la compilant 2 fois effectivement. Son installation se déroule sans problème, pas de message d'erreur, compilation et installation OK, les onglets apparaissent bien dans l'EDI, sans ajouter les Paths. Par contre, je viens de mettre en place la dernière version comme vous me l'avez suggéré, 10.6.2 rev 5362. Installation sans problème, compilation 2x et EDI recréé sans soucis, plus de message d'erreur... Donc pour le moment ceci est réglé.

    Reste encore mon nouveau soucis avec la procédure Draw expliquée ci-dessus. Je pense ne plus être loin de retrouver mon projet...

    Pour info, si le coeur vous en dit, les fichiers sources du projet sont sur SourceForge, si vous le souhaitez je vous donnerais l'adresse.

    Merci encore de votre patience et de votre aide.

    Alain

  7. #7
    Membre chevronné

    Homme Profil pro
    au repos
    Inscrit en
    Février 2014
    Messages
    429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : au repos

    Informations forums :
    Inscription : Février 2014
    Messages : 429
    Points : 1 884
    Points
    1 884
    Par défaut
    Bonjour,

    procedure drawloc(var img: tImage=nil; loc: String = 'AR09');

    Une valeur par défaut ne peut pas être attribuée lorsqu'on utilise un paramètre par référence (appelé aussi paramètre variable ou paramètre par adresse).
    Soit tu supprimes la valeur par défaut, soit tu supprimes "var".

    Cordialement
    Thierry

  8. #8
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 421
    Points : 5 820
    Points
    5 820
    Par défaut
    salut

    hum hum
    cette forme là je suis pas sur que le compilo il aime
    a la limite un mais initialiser un var, je vois pas bien l'utilité
    vu que soit tu passe une variable initialisé pour récupérer la variable soit tu ne t'en sert pas et ce n'est pas une variable
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

  9. #9
    Membre à l'essai
    Inscrit en
    Octobre 2004
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 19
    Points : 15
    Points
    15
    Par défaut
    Oui OK, un grand merci à tous les deux, euh non tous les trois pardon. Je ne m'en suis jamais vraiment rendu compte, cette procédure, écrite comme ça ne m'avait jamais posée de problème avant avec l'ancienne version fpc/lazarus. Donc vraiment merci.

    Je note comme résolu car effectivement tout est revenu correct (enfin jusqu'au prochain coup... )

    Amitiés.

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

Discussions similaires

  1. Erreur sur compilation codes de schémas électriques
    Par floyd973 dans le forum Erreurs - Avertissements
    Réponses: 10
    Dernier message: 19/08/2014, 19h23
  2. Erreur sur compilation codes de schémas électriques
    Par floyd973 dans le forum Mathématiques - Sciences
    Réponses: 4
    Dernier message: 14/08/2014, 21h35
  3. [XL-2007] Erreur logique: compilation Code VBA
    Par arthur_as dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 19/09/2012, 16h09
  4. Réponses: 6
    Dernier message: 30/07/2012, 21h53
  5. Package listings, erreur de compilation. Code trop long ?
    Par Cpowa dans le forum Erreurs - Avertissements
    Réponses: 15
    Dernier message: 23/04/2012, 13h29

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