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

Delphi Discussion :

Compilation DCC32 XE10+


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de ALWEBER
    Homme Profil pro
    Expert Delphi
    Inscrit en
    Mars 2006
    Messages
    1 538
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Expert Delphi

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 538
    Billets dans le blog
    10
    Par défaut Compilation DCC32 XE10+
    Bonjour à toute l'équipe des experts Delphi. Existe il de la doc récente sur la compilation en ligne de commande

  2. #2
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 083
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 083
    Par défaut
    En dehors du -h, il n'y avait pas grand chose à ma dernière recherche DCC64 - F2046 Out of memory quand j'ai remarqué que DCC64 était une application 32 Bits tout comme l'IDE de la 10.0 mais qui par chance est compilé avec le flag 3Go.

    Tu veux savoir quoi de précis ?
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Membre Expert
    Avatar de ALWEBER
    Homme Profil pro
    Expert Delphi
    Inscrit en
    Mars 2006
    Messages
    1 538
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Expert Delphi

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 538
    Billets dans le blog
    10
    Par défaut DCC32 Delphi Seattle
    J'essaie de comprendre comment fonctionne FinalBuilder qui permet de générer des exe Delphi chez un de mes clients.
    Je voulais savoir comment utiliser le compilateur en ligne

  4. #4
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 083
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 083
    Par défaut
    FinalBuilder, ah oui, je l'ai utilisé en D3, D5 et D7 puis en BCBXE3, cela fonctionnait très bien, très pratique pour automatiser
    - la synchro des sources, c'était aussi bien depuis SourceSafe, JEDI VCS, SVN ...
    - la construction et gérer les versions
    - archivage des sources
    - InstallShield et autre outil du genre.

    As-tu un problème spécifique ?
    Non parce qu'en dehors d'écrire son BAT pour compiler son projet, c'est juste les options du projet traduites en paramètre, il n'y a pas grand chose à ajouter à l'aide intégrée et se référer ensuite à l'aide de "Options de Projet" pour comprendre la partie Compilateur, Liaison et ressources.

    Pour le compilateur en ligne, Delphi montre la ligne de commande lors de la compilation, un truc genre

    Code BAT : Sélectionner tout - Visualiser dans une fenêtre à part
    "C:\Program Files (x86)\Embarcadero\Studio\17.0\bin\dcc64.exe" -B -Q -DRELEASE -$D0 -$L- -$Y-  -H -W -B -R"C:\Program Files (x86)\Embarcadero\Studio\17.0\lib\Win64\release" -NSSystem.Win;System;Winapi;Vcl; -E..\bin\ -NU..\dcu\RELEASE\ -K00400000 getDCU.dpr

    Souvent, c'est les chemin que l'on cherche à changer, plus l'application est complexe, plus il faut ajouter de namespace et de dépendance avec -I
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  5. #5
    Membre Expert
    Avatar de ALWEBER
    Homme Profil pro
    Expert Delphi
    Inscrit en
    Mars 2006
    Messages
    1 538
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Expert Delphi

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 538
    Billets dans le blog
    10
    Par défaut
    Citation Envoyé par ShaiLeTroll Voir le message
    As-tu un problème spécifique ?
    La ligne dans le point bat est conséquente Y a t il une limite de taille ?

  6. #6
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 083
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 083
    Par défaut
    Théoriquement 8Ko, vu que je ne compile que des bibliothèques en ligne de commande, je peux pas trop dire, je n'ai pas encore eu l'occasion d'avoir la chaine de compilation en main sur le produit que notre R&D s'occupe, je suis surtout sur du bench plutôt que sur la partie prod, même mon responsable ne s'en occupe pas, cela n'a pas du bouger depuis XE10 et le passage en 64Bits d'une grande partie des projets, d'ailleurs dépendance par chemin, aucune bibliothèque installée, 95% en service Windows donc une compilation moins lié à des lib visuels.
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  7. #7
    Membre Expert
    Avatar de ALWEBER
    Homme Profil pro
    Expert Delphi
    Inscrit en
    Mars 2006
    Messages
    1 538
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Expert Delphi

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 538
    Billets dans le blog
    10
    Par défaut
    Citation Envoyé par ShaiLeTroll Voir le message
    Théoriquement 8Ko, vu que je ne compile que des bibliothèques en ligne de commande, je peux pas trop dire, je n'ai pas encore eu l'occasion d'avoir la chaine de compilation en main sur le produit que notre R&D s'occupe, je suis surtout sur du bench plutôt que sur la partie prod, même mon responsable ne s'en occupe pas, cela n'a pas du bouger depuis XE10 et le passage en 64Bits d'une grande partie des projets, d'ailleurs dépendance par chemin, aucune bibliothèque installée, 95% en service Windows donc une compilation moins lié à des lib visuels.
    Merci, je vais tester

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

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

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Par défaut
    Citation Envoyé par ALWEBER Voir le message
    La ligne dans le point bat est conséquente Y a t il une limite de taille ?
    tu peux rendre les choses plus lisibles avec des variables

    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    @echo off
    set RAD=C:\Program Files (x86)\Embarcadero\Studio\22.0
     
    set BRC="%RAD%\bin\brcc32.exe"
    set DCC="%RAD%\bin\dcc32.exe"
     
    set NS=Winapi;System.Win;System;Vcl;Vcl.Imaging;Vcl.Samples;VCLTee;Data;Soap;BDE
     
    set LIB=..\lib;\Indy\Lib\Core;\Indy\Lib\Protocols;\Indy\Lib\System
     
    %BRC% Resource.rc
    %DCC% Projet1.dpr -$O+ -NS%NS% -U%LIB% -Q -GD
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  9. #9
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 083
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 083
    Par défaut
    Comme le mentionne Paul, on arrive tous à peu près à la même chose avec des variables
    plus lisible cependant c'est pas forcément toujours le cas

    la ligne de commande MakeGSP.D10.bat /bds /d est celle que j'utilise dans mon cas pour compiler une lib que seul le BDS compile mais pas BCC.

    MakeGSP.D10.bat contient
    Code batch : 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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    @echo off
    chcp 1252
     
    rem variables globales
    set ExitCode=0
    set DebugMode=0
    set BuildByBDS=0
    set CompilerBit=64
     
    rem Check Parameters
    if /i "%1" == "/?" goto ShowHelp
    if /i "%1" == "/h" goto ShowHelp
    if /i "%1" == "/help" goto ShowHelp
     
    if /i "%1" == "/d" set DebugMode=1
    if /i "%2" == "/d" set DebugMode=1
     
    if /i "%1" == "/bds" set BuildByBDS=1
    if /i "%2" == "/bds" set BuildByBDS=1
     
    if /i "%1" == "/32" set CompilerBit=32
    if /i "%2" == "/32" set CompilerBit=32
     
    rem Check DebugMode
    if %DebugMode% EQU 1 (
      set Config=DEBUG
      set Options=-$D+^ -$L+^ -$O-^ -$W+^ 
    ) else (
      set Config=RELEASE
      set Options=-$D0^ -$L-^ -$Y-^ 
    )
     
    rem Check Delphi
    echo Make DCU of GSQLParser for Delphi 10 Seatle
     
    set DelphiRoot=C:\Program^ Files^ (x86)\Embarcadero\Studio\17.0
    set DelphiCompiler="%DelphiRoot%\bin\dcc%CompilerBit%.exe"
    set DelphiBuilder=msbuild.exe
    set DelphiIDEBuilder="%DelphiRoot%\bin\bds.exe"
    set DelphiLib="%DelphiRoot%\lib\Win%CompilerBit%\release"
    set DCUPath=..\dcu\%Config%\
     
     
    echo - Delphi Compiler
    if %BuildByBDS% EQU 1 (
      if exist %DelphiIDEBuilder% (
        echo - Delphi Compiler IDE - OK : %DelphiIDEBuilder%.
      ) else (
        echo * KO * Delphi Compiler IDE not found on expected path : %DelphiIDEBuilder% !
        set ExitCode=00000001
        goto Abort
      )
    ) else (
      if exist %DelphiCompiler% (
        echo - Delphi Compiler %CompilerBit% - OK : %DelphiCompiler%.
      ) else (
        echo * KO * Delphi Compiler %CompilerBit% bit not found on expected path : %DelphiCompiler% !
        set ExitCode=00000001
        goto Abort
      )
    )
     
    rem Check INC Files
    echo - GSQLParser Compiler Defines
    copy /y ..\gsp_vcl\GSqlparserCompilerDefines.inc .\GSqlparserCompilerDefines.inc >nul
    if exist .\GSqlparserCompilerDefines.inc (
      echo - GSQLParser Compiler Defines - OK : GSqlparserCompilerDefines.inc copied.
    ) else (
      echo * KO * GSQLParser Compiler Defines : GSqlparserCompilerDefines.inc not copy for make !
      set ExitCode=00000011
      goto Abort
    )
     
     
    rem Compiler
    echo - GSQLParser DCU
    if exist %DCUPath% (
      echo - GSQLParser DCU - Check
      if exist %DCUPath%*.dcu (
        echo - GSQLParser DCU - Check: Clean
        del /q %DCUPath%*.dcu
        echo - GSQLParser DCU - Check: Clean - OK
      ) else (
        echo - GSQLParser DCU - Check: Empty - OK
      )
    ) else (
      mkdir %DCUPath%
      echo - GSQLParser DCU - Create Directory - OK
    )
     
     
    if exist .\LastMake.%Config%.txt (
      echo - GSQLParser Last Make: Clean
      del .\LastMake.%Config%.txt
      echo - GSQLParser Last Make: Clean - OK
    )
    if exist .\LastMake.%Config%.Errors.txt (
      echo - GSQLParser Last Make Errors: Clean
      del .\LastMake.%Config%.Errors.txt
      echo - GSQLParser Last Make Errors: Clean - OK
    )
     
     
    echo - GSQLParser Compile %Config%
    rem  -B = Construire toutes les unités
    rem  -CC = Cible console
    rem  -CG = Cible GUI
    rem  -Q = Compilation silencieuse
    rem  --no-config = ne pas charger le fichier dcc64.cfg par défaut
    rem  -D<syms> = Définir conditionnels
    rem  -R<chemins> = Répertoires ressources
    rem  -E<chemin> = Répertoire de sortie EXE/DLL
    rem  -NU<chemin> = répertoire de sortie de l'unité .dcu
    rem  -NS<espaces de nommage> = Chemin de recherche des espaces de nommage
    rem  -K<addr> = Adresse de base image
    rem  -W[+|-|^][warn_id] = Afficher les messages d'avertissement
    rem  -$ Options du compilateur : -$<lettre><état> (voir défauts ci-dessous)
    rem    -$O- Optimisations désactivées
    rem    -$W+ Générer cadre de pile - systématique même si non nécessaire
    rem    -$D0 Informations de débogage désactivées
    rem    -$L- Symboles débogage locaux désactivés
    rem    -$Y- Aucune Info référence symbole
     
    rem Redirecting error messages from Command Prompt: STDERR/STDOUT : &1 command to redirect the output for STDERR to STDOUT
     
     
    if %BuildByBDS% EQU 1 (
     
      echo - GSQLParser Compile %Config% - KILL
      rem taskkill /f /im bds.exe 2> NUL
      taskkill /f /im BDSWrapper.exe 2> NUL
     
      echo - GSQLParser Compile %Config% - RUN IDE
      rem %DelphiIDEBuilder% -ns -b -oLastMake.%Config%.Errors.txt getDCU.dproj
      %CD%\BDSWrapper\BDSWrapper.exe -bds:%DelphiIDEBuilder% -p:%CD%\getDCU.dproj -d:%Config%
      rem if errorlevel 1 (
      rem   echo - GSQLParser Compile %Config% - ERROR
      rem   set ExitCode=00000101
      rem   goto Abort
      rem )
      rem echo - GSQLParser Compile %Config% - SUCCESS
    ) else (
      echo - GSQLParser Compile %Config% - RUN
      %DelphiCompiler% -B -Q -D%Config% %Options% -H -W -R%DelphiLib% -NSSystem.Win;System;Winapi;Vcl; -E..\bin\ -NU%DCUPath% -K00400000 getDCU.dpr >.\LastMake.%Config%.txt 2>.\LastMake.%Config%.Errors.txt
    )
     
    rem Erase INC Files
    echo - GSQLParser Compiler Defines Clean
    del .\GSqlparserCompilerDefines.inc
     
     
     
    rem Copy DCU
     
    echo - GSQLParser DCU - Copy
    if exist ..\..\*.dcu (
      echo - GSQLParser DCU - Copy - Clean Dest
      del /q ..\..\*.dcu
      echo - GSQLParser DCU - Copy - Clean Dest - OK
    ) else (
      echo - GSQLParser DCU - Copy - Empty Dest
    )
    if exist %DCUPath%*.dcu (
      echo - GSQLParser DCU - Copy To Dest
      copy %DCUPath%*.dcu ..\..\*.dcu
      echo - GSQLParser DCU - Copy To Dest - OK
     
    ) else (
      echo * KO * GSQLParser DCU - Copy - NO FILES
      set ExitCode=00001001
      goto Abort
    )
     
    for /f %%a in ('dir /a:-d /s /b %DCUPath% ^|find /C /V ""') do set DCUCount=%%a
    echo - GSQLParser DCU - Copy To Dest - Build %DCUCount% DCU Files
     
    if %DCUCount% EQU 55 (
      echo - GSQLParser DCU - Copy To Dest - ALL BUILD
    ) else (
      echo - GSQLParser DCU - Copy To Dest - INCOMPLETE
    )
     
    :End
    pause
    exit /b
     
    :Abort
    echo * KO * Aborted ExitCode: %ExitCode%
    pause
    exit /b
     
     
    :ShowHelp
    echo Make GSQLParser for Delphi 10 Seatle
    echo.  /? ou /h ou /help show this help content
    echo.  /d compile en DEBUG (Directive, Informations de débogage et Symboles débogage locaux) sinon par défaut en RELEASE
    echo.  /bds passe par bds.exe pour l'encapsulation de DCC64.exe qui dépasse la limite de 2Go de RAM utilisée
    echo.  
    echo.  
    echo.
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

Discussions similaires

  1. Réponses: 2
    Dernier message: 30/04/2017, 13h33
  2. problème de compilation avec dcc32
    Par TaymouWan dans le forum EDI
    Réponses: 0
    Dernier message: 28/05/2012, 11h54
  3. Réponses: 8
    Dernier message: 14/12/2009, 17h14
  4. Compilation en ligne dcc32
    Par dennler dans le forum Langage
    Réponses: 1
    Dernier message: 25/05/2008, 08h25
  5. Réponses: 1
    Dernier message: 27/05/2002, 01h44

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