Autor Téma: Podmienená kompilácia časti kódu.  (Přečteno 476 krát)

Online Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 3228
  • Karma: 30
    • Verze Delphi: XE7 professional
Podmienená kompilácia časti kódu.
« kdy: 04-02-2018, 21:10:25 »
Dá sa nejako dosiahnuť, aby sa mi pri Release nekompiloval do exe mnou určený kód? Viem ho preskočiť pomocou direktívy {$IFDEF DEBUG}. Viac by sa mi páčilo, keby sa tam vôbec neukázal. Slúži len ako pomôcka pri ladení kódu.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline raul

  • Plnoletý
  • ***
  • Příspěvků: 205
  • Karma: 11
    • Verze Delphi: FPC :D
Re:Podmienená kompilácia časti kódu.
« Odpověď #1 kdy: 04-02-2018, 21:13:24 »
No on by se kompilovat v te chvili vubec nemel. Kdyz v nem budes mit chybu, tak ti take kompilace normalne projde - mel by ho vynechat preprocesor (v C/C++ to tak je, delphi ted nedelam, ale nikdy me nenapadlo, ze by to melo byt jinak...)
Lazarus 1.6.3:), FPC, Intel/Arm, Windows/Linux

Offline Delfin

  • Guru
  • *****
  • Příspěvků: 781
  • Karma: 35
  • SW konzultant
    • Verze Delphi: 2009, Tokyo
Re:Podmienená kompilácia časti kódu.
« Odpověď #2 kdy: 04-02-2018, 21:45:26 »
No on by se kompilovat v te chvili vubec nemel. Kdyz v nem budes mit chybu, tak ti take kompilace normalne projde - mel by ho vynechat preprocesor (v C/C++ to tak je, delphi ted nedelam, ale nikdy me nenapadlo, ze by to melo byt jinak...)

Je to stejne i v Delphi. Doporucil bych rebuild projektu.
I'm a soldier, so don't panic!

Offline Radek Červinka

  • Administrátoři
  • Padawan
  • *****
  • Příspěvků: 1933
  • Karma: 78
    • Verze Delphi: D5,D2007, DXE, DXE2 + 2 poslední (Tokyo)
    • O Delphi v češtině
Re:Podmienená kompilácia časti kódu.
« Odpověď #3 kdy: 05-02-2018, 09:28:37 »
Excellent
Rated 1 time
Nemyslíš náhodou něco jako regiony - http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Regions? Jako dohromady s IFDEF DEBUG je to, co potřebuješ - nebo si to aspoň myslím, že chápu o co ti jde.

Jinak jak bylo uvedeno, pokud preprocesor podminku kompilace to vyhodnotí tak se to ani nepreklada.
Embarcadero MVP - Czech republic

Offline František

  • Hrdina
  • ****
  • Příspěvků: 335
  • Karma: 3
    • Verze Delphi: primárne v XE5, občaas 10.1 starter, XE, BDS2006
Re:Podmienená kompilácia časti kódu.
« Odpověď #4 kdy: 06-02-2018, 13:58:22 »
 mne to príde na ten rebuild, tiež som mal v tom dakedy chaos

Offline František

  • Hrdina
  • ****
  • Příspěvků: 335
  • Karma: 3
    • Verze Delphi: primárne v XE5, občaas 10.1 starter, XE, BDS2006
Re:Podmienená kompilácia časti kódu.
« Odpověď #5 kdy: 06-02-2018, 18:57:40 »
a môžeš si ešte inak pomenovať aj exáč pre debug

Offline Slappy

  • Plnoletý
  • ***
  • Příspěvků: 117
  • Karma: 5
  • Slappy
    • Verze Delphi: 10.2 Tokyo + Vsetky :)
    • unSigned
Re:Podmienená kompilácia časti kódu.
« Odpověď #6 kdy: 06-02-2018, 20:10:04 »
a môžeš si ešte inak pomenovať aj exáč pre debug

Standardom je pridat suffix _d do nazvu aplikacie, kniznice atd. (MyApp.exe -> MyApp_d.exe)
Moje projekty: http://www.unsigned.sk Tvorba cool dizajnovych instalatorov v NSIS a Inno Setup. Rozsirenie pre Visual Studio a RAD Studio pre tvorbu NSIS a Inno Setup instalatorov.

Offline Delfin

  • Guru
  • *****
  • Příspěvků: 781
  • Karma: 35
  • SW konzultant
    • Verze Delphi: 2009, Tokyo
Re:Podmienená kompilácia časti kódu.
« Odpověď #7 kdy: 06-02-2018, 20:36:01 »
a môžeš si ešte inak pomenovať aj exáč pre debug

Standardom je pridat suffix _d do nazvu aplikacie, kniznice atd. (MyApp.exe -> MyApp_d.exe)

"Standardem" mi prijde mit spis separatni slozky. Navic nevim co by na takove prejmenovani rekl debugger. Nebo uz ma Delphi moznost pojmenovat vystupni binarku (jinak nez post-build akci)? U knihoven existovalo neco jako LIBSUFFIX, ale u desktop aplikaci?
« Poslední změna: 06-02-2018, 20:44:08 od Delfin »
I'm a soldier, so don't panic!

Online Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 3228
  • Karma: 30
    • Verze Delphi: XE7 professional
Re:Podmienená kompilácia časti kódu.
« Odpověď #8 kdy: 06-02-2018, 21:10:00 »
Citace
"Standardem" mi prijde mit spis separatni slozky.
To Delphi robí automaticky. Aspoň moje XE7 :)
Win32
  Debug
  Release
Win64
  Debug
  Release
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Slappy

  • Plnoletý
  • ***
  • Příspěvků: 117
  • Karma: 5
  • Slappy
    • Verze Delphi: 10.2 Tokyo + Vsetky :)
    • unSigned
Re:Podmienená kompilácia časti kódu.
« Odpověď #9 kdy: 07-02-2018, 08:21:02 »
a môžeš si ešte inak pomenovať aj exáč pre debug

Standardom je pridat suffix _d do nazvu aplikacie, kniznice atd. (MyApp.exe -> MyApp_d.exe)

"Standardem" mi prijde mit spis separatni slozky. Navic nevim co by na takove prejmenovani rekl debugger. Nebo uz ma Delphi moznost pojmenovat vystupni binarku (jinak nez post-build akci)? U knihoven existovalo neco jako LIBSUFFIX, ale u desktop aplikaci?

Ano, vola sa to LIBSUFFIX a presne na toto je to urcene. Pre .exe to zrejme treba sprvit manualne...
Moje projekty: http://www.unsigned.sk Tvorba cool dizajnovych instalatorov v NSIS a Inno Setup. Rozsirenie pre Visual Studio a RAD Studio pre tvorbu NSIS a Inno Setup instalatorov.

Offline Delfin

  • Guru
  • *****
  • Příspěvků: 781
  • Karma: 35
  • SW konzultant
    • Verze Delphi: 2009, Tokyo
Re:Podmienená kompilácia časti kódu.
« Odpověď #10 kdy: 07-02-2018, 08:26:12 »
Ano, vola sa to LIBSUFFIX a presne na toto je to urcene. Pre .exe to zrejme treba sprvit manualne...

No dobre ale kdyz v post-build event prejmenuju binarku tak bude debugger tam kde slunce nesviti, ne?

To Delphi robí automaticky. Aspoň moje XE7 :)

Ano, Delphi pouziva pro vystupni binarku by default cestu .\$(Platform)\$(Config) (coz je pocesteno Platforma\Build konfigurace) nakonfigurovanou v Project|Options:



Mimo to muzes v tom poli pouzit i jakoukoli promennou z Environment Variables. Vhodne je taky upravit si Unit output directory a dedikovat si subadresar pro DCU. Pouzival jsem napr.:


Project
  - Bin
    - Platform
      - Debug
      - Release
  - Dcu
    - Platform
      - Debug
      - Release
  - Res
  - Src
  Project.dpr


Kde bylo:

Output directory: Bin\$(Platform)\$(Config)
Unit output directory: Dcu\$(Platform)\$(Config)
« Poslední změna: 07-02-2018, 08:38:27 od Delfin »
I'm a soldier, so don't panic!

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 2059
  • Karma: 104
    • Verze Delphi: D2007, XE3, DX10
Re:Podmienená kompilácia časti kódu.
« Odpověď #11 kdy: 07-02-2018, 09:30:31 »
Excellent
Rated 1 time
"Standardem" mi prijde mit spis separatni slozky.
Souhlasim. Nevim co by to melo byt za standard  :o

Sufix _d je divna zalezitost, jsem starej vul a nikdy jsem to nevidel ani o tom neslysel. Ostatne, kdyz dam prohledat svuj C: disk, tak najde asi 4k5 souboru, ale vsechno jsou to obrazky, zvuky nebo .ini ...

Nehlede na to, ze si myslim, ze s tisice praktickych duvodu by jmena souboru v instalaci mela byt stabilni verze/neverze, customizace/necustomizace apod. A aby se soubory nepomichaly pri vyrobe, toho se da docilit radou zpusobu, standardne prave temi podadresaremi. Ostatne ani Delphi u lib to nedelal nikdy jinak.


 

S rychlou odpovědí můžete používat BB kódy a emotikony jako v běžném okně pro odpověď, ale daleko rychleji.

Jméno: E-mail:
Ověření:
Datový typ v Delphi, který má True a False: