Delphi: Required package “rtl” not found

A while back I got this interesting error when Installing a package into a newly installed copy of Delphi 2010 saying “required package rtl not found”. I recall having had this problem before once when I had Delphi 2009 and 2010 installed at the same time, it just so happens that now I had 2010 and XE installed. Here’s an easy solution to the problem:

Add “$(BDS)\lib” and “$(BDSCOMMONDIR)\dcp” to your library path. This solution will probably only work for later versions of Delphi, though for all versions it should simply be a matter of adding your lib path and dcp output path to the library path.

In my case the cause of this problem is fairly simple. Whenever you install Delphi, the installer will set up all paths like the library path in the windows registry. However, if a path is already present, it will use that, since the user might just be reinstalling the IDE and wouldn’t want to loose their settings. Some component installers allow you to install the components for IDE’s that aren’t actually installed on your computer yet, they will append their library paths to the non-existing path for the IDE which means they will simply create it. This results in a library path that does not contain any of the paths to the standard VCL library and components included with Delphi.

A less delicate solution to this problem would be to just erase all registry content for the version of Delphi you’re trying to install and then install it. This will ensure you have all paths set up correctly, because the previous solution will only ensure VCL works correctly, not the components that come with the IDE like the Indy library. The registry values for the IDEs are located in HKEY_CURRENT_USER\Software\Borland for old releases, HKEY_CURRENT_USER\Software\CodeGear for all releases up to Delphi 2010 and HKEY_CURRENT_USER\Software\Embarcadero for XE and newer.

13 thoughts on “Delphi: Required package “rtl” not found

  1. Johan say:

    Many thanks for this info but the second directory should be “$(BDSCOMMONDIR)\dcp”

  2. Freddy say:

    Yes, you’re right, I’ve changed it in the post, thanks.

  3. AlberTico say:

    The first path $(BDS)\Lib for XE and maybe XE2 should be change for $(BDSLIB)\$(PLATFORM)\release

  4. Marsheng say:

    I’m running Delphi 6 and my app runs on the local machine with the Delphi 6 installed.

    I installed the app on a new machine and I get can’t find RTL. Not sure where to go as I though all the RTL stuff was complied within the exe!

    If I copy the RTL file to the new machine I get

    The procedure entry point @Variants@VarResultCheck$qqrl could not be located in the dynamic link library rtl60.bpl

    Confused ??

  5. awesome!!!
    thank you

  6. Arthur Mbendera say:

    Once faced that problem, but didnt solve it the way you advised. Open your RAD, go to tools -> Options and add this to library path “C:\Program Files\Embarcadero\RAD Studio\8.0\lib\win32\debug”
    (the default installation path for RAD XE in windows is C:\Program Files\Embarcadero ). Upon doing this you wont find any errors like packages ‘vcl’ not found or packages ‘rtl’ not found.
    Good Luck!!

  7. Moon, Ki Seok say:

    Thank you!!!!!!!!
    very GOOD!!!!

  8. Glautter Neves say:

    very good!
    But, Delphi 2010 the path is “C:\Program Files (x86)\Embarcadero\RAD Studio\7.0\lib”

    Thank you!!!

  9. Arsadi say:

    Thank you so much. It’s also work for Delphi 10.3.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.