Jump to content
AndrewHoward

"Fatal: F2048 Bad unit format" error in Delphi 10 Seattle

Recommended Posts

Hi,

I'm using Delphi 10 Seattle & I'm trying to install JEDI VCL but I'm getting this error:

Compiling JediIncCheck...

Using Embarcadero RAD Studio 10 Seattle

Using search path: C:\Program Files (x86)\Embarcadero\Studio\17.0\lib\win32\release


Embarcadero Delphi for Win32 compiler version 32.0

Copyright (c) 1983,2016 Embarcadero Technologies, Inc.

JediIncCheck.dpr(2) Fatal: F2048 Bad unit format: 'C:\Program Files (x86)\Embarcadero\Studio\17.0\lib\win32\release\System.dcu'

  - Expected version: 32.0, Windows Unicode(x86) Found version: 30.0, Windows Unicode(x86)



An error occured while compiling the installer. Installation aborted.

This error isn't specific to JEDI as I had a similar error when I was trying to install another third party compoent.

I got this error when I run the install.bat.  I get something similar when I try to install using the Delphi GetIt manager.

 

What causes the error & how to fix it?

Thanks

Edited by AndrewHoward
Made it clearer

Share this post


Link to post

It looks like you are using Delphi 10.2 Tokyo to install Jedi.

Compiler Version 32.0 is Delphi 10.2, Delphi 10 has compiler version 30.0

Share this post


Link to post

I'm definately using Delphi 10 and not 10.2.

I think something else is confustion Delphi. 

I think error is related to library paths or platform variable or BDSLIB variable.

Share this post


Link to post

I found out that version 32.0 comes from this command which needs to be executed when you run Install.bat:

"C:\Program Files (x86)\Embarcadero\Studio\17.0\bin\dcc32.exe" -q -w -E..\bin -I..\source\include JediIncCheck.dpr

If you run dcc32, this is what you get:
 

C:\Program Files (x86)\Embarcadero\Studio\17.0\bin>dcc32

Embarcadero Delphi for Win32 compiler version 32.0

Copyright (c) 1983,2016 Embarcadero Technologies, Inc.

 

I still don't know what's causing my error!

Can anyone help ?

Thanks

Share this post


Link to post

I think @Stompieis right. Even though you're running it from the Studio 17.0 (Delphi 10 Seattle) folder, it might be picking up the path for the newer version of Delphi instead.

 

On my main development machine, I have only Delphi 10.4 and 11 installed. I ran dcc32 --version from both the "21.0" and "22.0" folders:

image.thumb.png.9bf15a84f6d25504136914c90bc52b1a.png

 

And it picked the same one, the Delphi 11 version, both times. It used to be that Windows would look in the current folder first to run an application but I think it now looks through the PATH environment variable first.

 

A reference sheet I keep handy shows the relationship between the compiler version, the product name, the Delphi version, and the Studio version:

  • VER300 - Delphi 10 Seattle (Delphi 23, Studio 17.0)
  • VER310 - Delphi 10.1 Berlin (Delphi 24, Studio 18.0)
  • VER320 - Delphi 10.2 Tokyo (Delphi 25, Studio 19.0)
  • VER330 - Delphi 10.3 Rio (Delphi 26, Studio 20.0)
  • VER340 - Delphi 10.4 Sydney (Delphi 27, Studio 21.0)
  • VER350 - Delphi 11 Alexandria (Delphi 28, Studio 22.0)

When I ran the folder-specific version of dcc32, it used the correct one:

image.thumb.png.aed10425001307d92bca0925bf08fac5.png

Share this post


Link to post
4 hours ago, corneliusdavid said:

And it picked the same one, the Delphi 11 version, both times. It used to be that Windows would look in the current folder first to run an application but I think it now looks through the PATH environment variable first.

Typing where dcc*.exe at the command line shows all Delphi pathed.  only 10.4 and 11 pathed on my machine

 

I wonder why Delphi needs the system path set, wouldn't the registry be more modern pathing?   

Edited by Pat Foley
crossed out wrong turn

Share this post


Link to post
3 hours ago, Pat Foley said:

I wonder why Delphi needs the system path set, wouldn't the registry be more modern pathing?   

It's not Delphi that needs the path set--it's Windows. Windows doesn't use the registry to find and launch the application--dcc32.exe in this case.

 

The first instance of dcc32.exe that Windows finds in the PATH is the one that runs. And by default, the last version of Delphi installed will be the version of dcc32 that automatically launches because installing Delphi prepends the system path with bin folder of that version of Delphi.

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×