Précédent   Forum du club des développeurs et IT Pro > Environnements de développement > Delphi > EDI
EDI Configuration/utilisation de l'EDI
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 23/11/2012, 17h26   #1
devEric69
Invité de passage
 
Homme Éric
Développeur informatique
Inscription : novembre 2012
Messages : 4
Détails du profil
Informations personnelles :
Nom : Homme Éric
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2012
Messages : 4
Points : 2
Points : 2
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 :
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 :
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:

Citation:
# 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?
devEric69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2012, 17h41   #2
Paul TOTH
Expert Confirmé Sénior
 
Avatar de Paul TOTH
 
Homme Paul TOTH
Freelance
Inscription : novembre 2002
Messages : 4 423
Détails du profil
Informations personnelles :
Nom : Homme Paul TOTH
Âge : 43
Localisation : Réunion

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

Informations forums :
Inscription : novembre 2002
Messages : 4 423
Points : 10 818
Points : 10 818
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 :
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
Produits : UPnP, RemoteOffice, FlashPascal
Embarcadero : Ile de la Réunion, Dephi, C++Builder, RADPHP...TVA à 8,5%
Paul TOTH est actuellement connecté   Envoyer un message privé Réponse avec citation 10
Vieux 26/11/2012, 11h16   #3
devEric69
Invité de passage
 
Homme Éric
Développeur informatique
Inscription : novembre 2012
Messages : 4
Détails du profil
Informations personnelles :
Nom : Homme Éric
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2012
Messages : 4
Points : 2
Points : 2
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 .
devEric69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 06h21.


 
 
 
 
Partenaires

Hébergement Web