Toon posts:

[Delphi] static linking van applicatie

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een applicatie gemaakt die ik nu aan een klant wil geven.
De applicatie maakt gebruik van een aantal algemene packages en DLL's. Nu wil ik niet al deze DLL's en packages mee geven, vandaar dat ik voor de oplossing 'static linking' wil gaan.
Na onderzoek, ben ik er achter gekomen dat dit in Delphi static linking standaard aan staat. Zolang je in de project options de optie 'Build with runtime packages' uitzet, zal Delphi static linking kiezen. (Klopt dit?)

Maar als ik de applicatie draai op een pc zonder Delphi geinstalleerd, vraagt hij toch om een aantal DLL's and packages. Het gaat om qtinft.dll en vcl60.bpl.
Hoe kan ik ervoor zorgen dat deze statisch gelinkt worden in de executable?

Alvast bedankt!

p.s. Ik wil dat ik slechts de executable aan de klant geef en dat het vervolgens werkt.

  • alienfruit
  • Registratie: Maart 2003
  • Laatst online: 17:28

alienfruit

the alien you never expected

Als je de functie "Build with runtime packages" uitzet dan build ie je executable op zo'n manier dat hij alle runtime packages nodig heeft. Daarom heeft hij bij jouw ook de vcl60.bpl e.d. nodig. Wat normaal gewoon in de executable ging.

  • LordLarry
  • Registratie: Juli 2001
  • Niet online

LordLarry

Aut disce aut discede

Idd, als je 'Build with runtime packages' uitzet (standaard) wordt al je code (die je ook echt gebruikt) uit de packages in de exe gecompileerd. Ik neem aan dat alienfruit dat ook bedoelde, alhoewel ie het omgedraaid zegt. :)

Maar die optie is niet de oorzaak van je probleem. Je hebt (onbedoelt?) een CLX applicatie gemaakt ipv een normale VCL. Dat betekend dat je code portable is naar Kylix (Delphi for Linux). CLX leunt hierbij op de Qt library en dat heeft als nadeel dat je die DLLs ook mee moet leveren. Aangezien dit een ordinaire DLL is en geen package heb je geen keus in dit geval.

De keuze is dus of je levert die benodige dll's mee, of je herschrijft je applicatie zodat je geen gebruik meer maakt van CLX. Als je geluk hebt heb je alleen perongeluk een CLX unit geused die je eigenlijk niet nodig hebt. Kijk naar units die je used die beginnenn met Q en vervang die door een vergelijkbare VCL unit.

We adore chaos because we like to restore order - M.C. Escher