1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    mai 2009
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mai 2009
    Messages : 24
    Points : 7
    Points
    7

    Par défaut Une unité modifiée ne se compile plus

    Bonjour
    Dans une application, j'ai modifié une unité.
    La compilation se fait sans message d'erreur, mais à l'exécution, j'ai toujours l'ancienne version de l'unité.
    Elle ne s'est pas recompilée
    Il faudrait l'obliger à se recompiler
    Avez-vous une solution ?
    Merci

  2. #2
    Membre expérimenté

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

    Informations professionnelles :
    Activité : au repos

    Informations forums :
    Inscription : février 2014
    Messages : 402
    Points : 1 748
    Points
    1 748

    Par défaut

    Bonsoir,

    Dans le menu exécuter : utilise "Créer" au lieu de "Compiler".

    Cordialement
    Thierry

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    mai 2009
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mai 2009
    Messages : 24
    Points : 7
    Points
    7

    Par défaut

    Merci à ThWilliam, mais ça ne marche toujours pas.
    A +

  4. #4
    Membre expert
    Avatar de e-ric
    Homme Profil pro
    Traqueur de tritons et autres bestioles
    Inscrit en
    mars 2002
    Messages
    1 440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Traqueur de tritons et autres bestioles

    Informations forums :
    Inscription : mars 2002
    Messages : 1 440
    Points : 3 468
    Points
    3 468

    Par défaut

    Salut

    Si tu supprimes les fichiers ppu, que se passe-t-il ?

    Cdlt

    M E N S . A G I T A T . M O L E M
    Debian 8.x 64bit, Lazarus 1.6 (FPC 3.0), Python 3

    "La théorie, c'est quand on sait tout, mais que rien ne marche. La pratique, c'est quand tout marche, mais qu'on ne sait pas pourquoi. En informatique, la théorie et la pratique sont réunies: rien ne marche et on ne sait pas pourquoi!".
    Mais Emmanuel Kant disait aussi : "La théorie sans la pratique est inutile, la pratique sans la théorie est aveugle."

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    mai 2009
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mai 2009
    Messages : 24
    Points : 7
    Points
    7

    Par défaut

    Merci é e-ric
    J'ai supprimé le fichier ppu de la fiche en question, mais cela n'a rien changé au niveau de l'exécution qui se fait toujours avec une ancienne fiche
    Merci en tout cas de chercher à m'aider
    A +

  6. #6
    Membre expérimenté

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

    Informations professionnelles :
    Activité : au repos

    Informations forums :
    Inscription : février 2014
    Messages : 402
    Points : 1 748
    Points
    1 748

    Par défaut

    Bonjour,

    Peux-tu nous dire précisément et dans l'ordre les manipulations faites?

    D'après ce que tu dis, il s'agit de l'unité relative à une fiche.
    S'agit-il de la fiche principale ?
    As-tu simplement modifié l'unité d'origine (p.ex en ajoutant un composant) ou as-tu créé une nouvelle fiche ?

    Cordialement
    Thierry

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    mai 2009
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mai 2009
    Messages : 24
    Points : 7
    Points
    7

    Par défaut

    Il ne s'agit pas d'une fiche principale
    Il s'agit d'une fiche d'édition d'un listing
    J'ai une unité d'édition avec nom et téléphone qui marche parfaitement
    et celle-ci, la même sans téléphone qui me fait des misères, pratiquement copy conforme à la première
    Je vais peut-être finir par la détruire et la recomposer. Ca ira surement plus vite.
    Mais c'est dommage de buter la-dessus. Il y a surement une solution.
    A + et merci

  8. #8
    Membre averti

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

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : novembre 2015
    Messages : 92
    Points : 406
    Points
    406

    Par défaut

    Tout ceci semble en effet bizarre: la "création" force en effet normalement une re-compilation complète.

    Peut-être un chemin additionnel dans votre projet, pointant sur une autre version de l'unité ?

    Vous pourriez tenter de supprimer tout le sous-répertoire "\lib" de votre projet, puis demander une re-compilation complète.

    Vous pouvez aussi éventuellement demander des informations complémentaires issues de la compilation, pour essayer de voir s'il n'y a pas des choses "anormales" à ce niveau.

    Après la re-compilation ("création" recommandée), dans la fenêtre "Messages": Click-droit -> "Copier" -> "Copier les messages (Tous/Originaux) dans le presse-papier".

    Voici ce que cela donne, par exemple, pour un projet "vide" contenant 2 formes et 3 unités:

    Hint: (11030) Start of reading config file C:\lazarus\fpc\3.0.0\bin\i386-win32\fpc.cfg
    Hint: (11031) End of reading config file C:\lazarus\fpc\3.0.0\bin\i386-win32\fpc.cfg
    Free Pascal Compiler version 3.0.0 [2016/11/12] for i386
    Copyright (c) 1993-2015 by Florian Klaempfl and others
    (1002) Target OS: Win32 for i386
    (3104) Compiling project1.lpr
    (3104) Compiling unit1.pas
    (3104) Compiling unit2.pas
    (3104) Compiling unit3.pas
    xxxx\project1.lpr(10,24) Hint: (5023) Unit "Unit3" not used in project1
    (9022) Compiling resource xxxx\lib\i386-win32\project1.or
    (9015) Linking project1.exe
    (1008) 91 lines compiled, 15.7 sec, 1186176 bytes code, 39812 bytes data
    (1022) 3 hint(s) issued

  9. #9
    Membre expert
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    décembre 2008
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : décembre 2008
    Messages : 1 427
    Points : 3 357
    Points
    3 357

    Par défaut

    hello,
    et en enlevant puis remettant l'unité dans l'inspecteur de projet ?

    Ami calmant, J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  10. #10
    Expert éminent
    Avatar de Jipété
    Profil pro
    Inscrit en
    juillet 2006
    Messages
    5 274
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : juillet 2006
    Messages : 5 274
    Points : 7 184
    Points
    7 184

    Par défaut

    Salut,

    Je pense que Thierry a bien cerné le truc (ça sent le vécu, ), donc ça serait cool d'avoir une réponse simple et rapide à cette petite question :

    Citation Envoyé par ThWilliam Voir le message
    As-tu simplement modifié l'unité d'origine (p.ex en ajoutant un composant) ou as-tu créé une nouvelle fiche ?

    Cordialement
    Thierry
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  11. #11
    Membre expert
    Avatar de e-ric
    Homme Profil pro
    Traqueur de tritons et autres bestioles
    Inscrit en
    mars 2002
    Messages
    1 440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Traqueur de tritons et autres bestioles

    Informations forums :
    Inscription : mars 2002
    Messages : 1 440
    Points : 3 468
    Points
    3 468

    Par défaut

    Salut,

    Pour bien mettre le problème en évidence, il suffit de retrouver l'emplacement de l'ancienne version toujours prise en compte, de la déplacer dans un sous-dossier via l'explorateur de fichier et recompiler, cela devrait planter.

    Je soupçonne un petit problème de chemin d'accès, pour corriger cela, essaie retirer l'unité incriminée du projet et et de rajouter ensuite la bonne version (si tu ne l'as pas déjà fait).

    Pour faire plus brutal, tu peux suivre les étapes suivantes :
    - ferme l'EDI,
    - élimine les fichiers portant le nom de projet avec les extensions .lpi et .lps (ou sauvegarde-les dans un sous-dossier),
    - relance EDI,
    - et ouvre le fichier .lpr en confirmant la création du projet.

    Attention : cela recréera un projet avec des options standards, toutes les éventuelles options spécifiques antérieures de ton projet seront perdues.

    Cdlt

    M E N S . A G I T A T . M O L E M
    Debian 8.x 64bit, Lazarus 1.6 (FPC 3.0), Python 3

    "La théorie, c'est quand on sait tout, mais que rien ne marche. La pratique, c'est quand tout marche, mais qu'on ne sait pas pourquoi. En informatique, la théorie et la pratique sont réunies: rien ne marche et on ne sait pas pourquoi!".
    Mais Emmanuel Kant disait aussi : "La théorie sans la pratique est inutile, la pratique sans la théorie est aveugle."

  12. #12
    Futur Membre du Club
    Profil pro
    Inscrit en
    mai 2009
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mai 2009
    Messages : 24
    Points : 7
    Points
    7

    Par défaut La suite.

    J'ai suivi plusieurs instructions :
    J'ai supprimé \lib
    Recompilé avec créer
    Pas de changement

    J'ai supprimé l'unité et je l'ai mise dans un autre dossier
    Eh bien, ça compile toujours et ça fonctionne avec l'ancienne fiche
    Mais où est-elle?
    Elle n'est plus au répertoire et je n'en ai pas une autre du même nom dans toutes mes autres applications

    Dans les messages je n'ai pas su amener un tableau comme celui présenté
    Merci à tous
    A +

  13. #13
    Futur Membre du Club
    Profil pro
    Inscrit en
    mai 2009
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mai 2009
    Messages : 24
    Points : 7
    Points
    7

    Par défaut Un peu plus loin

    Quand j'ai retiré \lib l'unité était toujours dans le dossier, ils ont donc tous été recrés.
    J'ai constaté qu'ils étaient aussi dans les fichiers bak et dans le dossier i386-win32
    Je les ai supprimés partout
    Là la compilation ne fonctionnait plus et me demandait l'unité en question
    J'ai remis les fichiers gardés par ailleurs
    De nouveau cela compile parfaitement... mais toujours avec l'ancienne fiche
    Bizarre... Bizarre..
    A +

  14. #14
    Futur Membre du Club
    Profil pro
    Inscrit en
    mai 2009
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mai 2009
    Messages : 24
    Points : 7
    Points
    7

    Par défaut Encore plus fort...

    J'ai retiré l'unité partout : dans le dossier de l'application, dans les fichiers bak, dans le dossier Win...
    Eh bien ça compile toujours et exécute avec l'ancien fichier
    Il reste donc bien quelque part, mais il se cache bien.
    Après compilation, ces fichiers n'ont pas été recréés.

  15. #15
    Membre averti

    Homme Profil pro
    Rédacteur technique (retraité)
    Inscrit en
    octobre 2009
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Rédacteur technique (retraité)

    Informations forums :
    Inscription : octobre 2009
    Messages : 101
    Points : 429
    Points
    429

    Par défaut

    Citation Envoyé par Tolede78
    Eh bien ça compile toujours et exécute avec l'ancien fichier
    Il reste donc bien quelque part, mais il se cache bien.
    Tu peux aussi essayer le rechercher avec l'explorateur Windows (je présume que tu est sous Windows) par une recherche globale sur tout le disque. Tu le trouvera peut-être dans un dossier que tu ne soupçonnais pas.

    Attention : Si le nom d'unité fait plus de 8 caractères, limite toi aux 8 premiers caractères du nom (abcdefgh*.pas). Ceci parce-que FPC, lorsqu'il ne trouve pas une unité, la recherche avec un nom limité aux 8 premiers caractères (compatibilité avec des systèmes ne supportant pas les noms longs)

  16. #16
    Membre expérimenté

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

    Informations professionnelles :
    Activité : au repos

    Informations forums :
    Inscription : février 2014
    Messages : 402
    Points : 1 748
    Points
    1 748

    Par défaut

    Une petite remarque (si nécessaire) :

    Pour une fiche, il faut toujours 2 fichiers dans le même répertoire: MyUnit.pas et MyUnit.lfm
    (le fichier LFM contient les informations pour les composants créés en design-time).

    Après compilation, on obtient dans le sous-dossier lib : MyUnit.o , MyUnit.ppu et MyUnit.lfm

    Il est possible dans ton cas que Lazarus compile avec un mauvais LFM (problème de chemin ?)

    Cordialement
    Thierry

  17. #17
    Membre expert
    Avatar de e-ric
    Homme Profil pro
    Traqueur de tritons et autres bestioles
    Inscrit en
    mars 2002
    Messages
    1 440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Traqueur de tritons et autres bestioles

    Informations forums :
    Inscription : mars 2002
    Messages : 1 440
    Points : 3 468
    Points
    3 468

    Par défaut

    Salut

    Décidément, tu as un problème plutôt e...erdant.

    As-tu essayé comme je te l'avais proposé de supprimer (ou déplacer) les fichiers .lpi et .lps portant le nom de ton fichier ?

    Autre piste: l'unité en question ne fait pas partie d'un paquet, elle est bien spécifique à ton programme ?

    Cdlt

    M E N S . A G I T A T . M O L E M
    Debian 8.x 64bit, Lazarus 1.6 (FPC 3.0), Python 3

    "La théorie, c'est quand on sait tout, mais que rien ne marche. La pratique, c'est quand tout marche, mais qu'on ne sait pas pourquoi. En informatique, la théorie et la pratique sont réunies: rien ne marche et on ne sait pas pourquoi!".
    Mais Emmanuel Kant disait aussi : "La théorie sans la pratique est inutile, la pratique sans la théorie est aveugle."

  18. #18
    Futur Membre du Club
    Profil pro
    Inscrit en
    mai 2009
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mai 2009
    Messages : 24
    Points : 7
    Points
    7

    Par défaut

    Merci à tous
    Je vas supprimer l'unité et la reconstruire sous un autre nom.
    Je vous tiens au courant
    A +

  19. #19
    Futur Membre du Club
    Profil pro
    Inscrit en
    mai 2009
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mai 2009
    Messages : 24
    Points : 7
    Points
    7

    Par défaut La fin

    J'ai viré l'unité et je l'ai remplacé par la même sous un autre nom et évidemment ça marche
    Merci à tous

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 04/01/2007, 16h34
  2. Réponses: 2
    Dernier message: 12/12/2006, 22h25
  3. Réponses: 4
    Dernier message: 22/05/2006, 11h53
  4. Compiler une unité (*.pas to *.dcu)
    Par Enano2 dans le forum EDI
    Réponses: 2
    Dernier message: 20/03/2006, 14h38

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