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

EDI Delphi Discussion :

Lancement d'une compilation avec Make.exe


Sujet :

EDI Delphi

  1. #1
    Membre régulier Avatar de devEric69
    Homme Profil pro
    Dév. Lazarus & C++, Php - Windows & Ubuntu
    Inscrit en
    Novembre 2012
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Dév. Lazarus & C++, Php - Windows & Ubuntu
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2012
    Messages : 74
    Points : 121
    Points
    121
    Par défaut Lancement d'une compilation avec Make.exe
    Bonjour,

    ayant vu que l'installation de la suite du Jedi se fait en lançant des compilations avec l'utilitaire Make.exe, j'ai essayé de faire la même chose sur un simple projet, mais je n'arrive pas à générer l'exécutable.

    Voici le contexte d'utilisation:

    -Sources du projets (2 fichiers):
    ~~~~~~~~~~~~~~~~~~~~

    - Projet.dpr:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    program ProjetCiblePourMake;
    {$APPTYPE CONSOLE}
    uses
      uSimple in 'uSimple.pas';
     
    begin
      CalculAddition(2, 2);
    end.
    - uSimple.pas:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    unit uSimple;
    interface
    function CalculAddition(iA, iB: Integer): Integer;
     
    implementation
    function CalculAddition(iA, iB: Integer): Integer;
    begin
      result:= iA + iB;
    end;
     
    end.
    --> Le projet compile dans Delphi.


    -Arborescence de mes répertoires utilisée par Make.exe:
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    - Un répertoire ...\Racine contenant Make.exe, Test.mak et dcc32.exe.

    - Un répertoire avec les 2 fichiers sources:
    ...Racine\Sources\ProjetCiblePourMake.dpr
    ...Racine\Sources\uSimple.pas

    - Trois répertoires vides:
    ...Racine\Bin
    ...Racine\Dcu
    ...Racine\Sources


    - Le fichier Test.mak contient ce code:

    # teste si la macro ROOT n'est pas definie et si oui elle est definie avec le repertoire ou se trouve l'executable MAKE
    !ifndef ROOT
    ROOT=$(MAKEDIR)
    !endif
    # Affiche un message et le contenu d'une macro
    !message Le repertoire de make est : $(ROOT)

    #------------------------------------------------Options de MAKE:
    # -E<chemin> = Répertoire de sortie EXE/DLL
    # -I<paths> = Répertoires d'inclusion {$Include *.inc}
    # -NU<path> = unit .dcu output directory
    # -R<paths> = Resource directories {$R *.dfm}, {$R *.res}
    # -U<paths> = Unit directories *.pas
    # -Q = Quiet compile
    # -W[+|-|^][warn_id] = Output warning messages
    # -B = Build all units
    #------------------------------------------------ Paramètres de dcc32.exe:
    # D+ Debug information
    # L+ Local debug symbols
    # O+ Optimization (pas la boolean)
    # Y+ Symbol reference info

    BIN = $(ROOT)\Bin
    SRC = $(ROOT)\Sources
    DCU = $(ROOT)\Dcu

    DCC = $(ROOT)\dcc32.exe -E$(BIN) -I$(SRC) -NU$(DCU) -R$(SRC) -U$(SRC)

    # Déclare la cible
    ProjetCiblePourMake.exe:
    # Placement dans le répertoire où est Make.exe, Test.mak et dcc32.exe
    @cd \D $(ROOT)
    $(DCC) ProjetCiblePourMake.dpr
    --> Résultat: je n'ai aucune erreur renvoyée par Make.exe, qui m'affiche la ligne de commande lancée en fin de compte rendu. Mais rien n'est compilé (pas de création de ProjetCiblePourMake.exe dans ...Racine\Bin).

    Est-ce que quelqu'un habitué à l'utilisation de Make.exe pourrait me dire s'il voit quelque chose d'évident m'empêchant de générer l'exécutable?

  2. #2
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 430
    Points
    28 430
    Par défaut
    Dans ton exemple, Delphi ne pourra pas compiler le projet, il manque les unités système.

    personnellement j'utilise des .BAT pour lancer BRCC32 et DCC32...ça fonctionne très bien

    exemple de .bat que j'utilise pour Delphi 6 avec des répertoires comme ceci
      .\Build.bat
      .\src\Projet.dpr
      .\src\Resources.rc
      .\dcu\
      .\bin\
    
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    @echo off
    set dcc="C:\Program Files (x86)\Borland\Delphi6\Bin\dcc32.exe" -B -E"..\bin" -N"..\dcu" -Q 
    set brc="C:\Program Files (x86)\Borland\Delphi6\Bin\brcc32.exe"
     
    cd src
    %brc% Resources.rc > ..\Build.log
    %dcc% Projet.dpr -DRELEASE >> ..\Build.log
    cd..
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  3. #3
    Membre régulier Avatar de devEric69
    Homme Profil pro
    Dév. Lazarus & C++, Php - Windows & Ubuntu
    Inscrit en
    Novembre 2012
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Dév. Lazarus & C++, Php - Windows & Ubuntu
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2012
    Messages : 74
    Points : 121
    Points
    121
    Par défaut
    Merci pour l'exemple en *.bat: pour une compilation en ligne de commande d'un projet personnel, ça doit être plus simple que d'utiliser un Makefile .

    Concernant un exemple de compilation à la mode du Jedi, après lancement de la commande contextuelle "Analyse project" (Delphi XE3), il apparaît effectivement les fichiers systèmes nécessaires System.pas et SysInit.pas qui ne sont pourtant présents dans aucun uses, en plus de ProjetCiblePourMake.dpr et de uSimple.pas.

    Après les avoir ajoutés dans le répertoire ...Racine\Sources, la commande
    >make -fTest -B me renvoie le massage ** error 1 ** deleting ProjetCiblePourMake.exe.

    Si quelqu'un connait la manipulation suivante pour arriver au terme de cette compilation, je suis preneur .

Discussions similaires

  1. Problème de lancement d'une application avec JWS
    Par petiteminette44 dans le forum JWS
    Réponses: 1
    Dernier message: 11/08/2008, 14h41
  2. Compiler avec Make
    Par Victoria007 dans le forum Débuter
    Réponses: 4
    Dernier message: 15/02/2008, 17h17
  3. Probleme de lancement d'une application avec SQL
    Par Tigre_82 dans le forum VB.NET
    Réponses: 4
    Dernier message: 08/10/2007, 11h26
  4. pb. d'import dans une compilation avec Ant
    Par clairette dans le forum ANT
    Réponses: 2
    Dernier message: 24/09/2006, 17h12
  5. [JB9][EJB]Compiler avec Make ou javac ?
    Par _gtm_ dans le forum JBuilder
    Réponses: 4
    Dernier message: 11/07/2003, 15h59

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