delphibpldelphi-ideruntime-packagesdelphi-13-florence

What does "Link with runtime packages" mean in Delphi Project Options?


I'm was trying to solve a BPL issue that I'm having, and I stumbled upon an option in the settings called "Link with runtime packages" which is a Boolean. It can either be true or false.

Mine was set to true, but what does it actually mean? I set it to false and it solved my problem, but I do not really understand it.

What exactly is the difference between true and false?

Why would I want to have true over false or vice versa?


Solution

  • The "Link with runtime packages" option controls whether your application depends on external .BPL (Borland Package Library) files at runtime, or whether everything is compiled directly into your executable.


    What does it mean?


    What are the differences?

    True (Link with runtime packages) False (Don't link with runtime packages)
    EXE depends on external .BPL files at runtime EXE is fully self‑contained, no .BPL needed
    Smaller executable size Larger executable size
    Multiple apps can share the same runtime packages Each app includes its own copy of the runtime code
    Easier to update shared libraries without recompiling all apps Updating requires recompiling the EXE
    Useful for plugin systems that load .BPL files dynamically Simpler deployment, just ship one EXE

    Recommendation

    In my opinion, unless you specifically need runtime packages for a certain reason, it's usually best to just set "Link with runtime packages" to False and have all the code be compiled directly into your EXE. This makes deployment much easier.