Reputation: 21
Error when attempting to compile delphi project on command line using DCC64.EXE:
Embarcadero Delphi for Win64 compiler version 34.0 Copyright (c) 1983,2021 Embarcadero Technologies, Inc. FATestMA64.dpr(1) Fatal: F2048 Bad unit format: 'C:\Program Files (x86)\Embarcadero\Studio\21.0\lib\win32\release\System.dcu' - Expected version: 34.0, Windows Unicode(x64) Found version: 34.0, Windows Unicode(x86)
The command line being run is:
"C:\Program Files (x86)\Embarcadero\Studio\21.0\bin\DCC64.exe" /$D-,Q+,R-,W-,J+ /L /B FATestMA64.DPR /Ddebuginfo;autotest;notae;vcompnohalt;AllowDRPOForTests;D_64BIT > FATestMA64.logSS.txt
I have tried several different compile directives to no avail. The same project and compile command works successfully on a different machine (environment or Delphi default differences?).
Note: I am hoping not to have to add 'C:\Program Files (x86)\Embarcadero\Studio\21.0\lib\win64\release'
explicitly in the path option (-I
).
The project .dproj
file contains:
<PropertyGroup>
<ProjectGuid>{12723496-eaf3-4544-a9he-ebb0432dd32e}</ProjectGuid>
<MainSource>FATestMA64.dpr</MainSource>
<Configuration Condition=" '$(Configuration)' == '' ">Release</Configuration>
<DCC_DCCCompiler>DCC32</DCC_DCCCompiler>
<DCC_DependencyCheckOutputName>FATestMA.exe</DCC_DependencyCheckOutputName>
<ProjectVersion>19.2</ProjectVersion>
<Config Condition="'$(Config)'==''">Release</Config>
<FrameworkType>VCL</FrameworkType>
<Base>True</Base>
<Platform Condition="'$(Platform)'==''">Win64</Platform>
<TargetedPlatforms>3</TargetedPlatforms>
<AppType>Application</AppType>
</PropertyGroup>
Upvotes: 1
Views: 394
Reputation: 21
This ended up being due to a script that was updating the \Embarcadero\Studio\21.0\bin\dcc64.cfg file incorrectly (not a fan but can't always control what you inherit). Once that was fixed then the compiler used the correct library path.
Upvotes: 0
Reputation: 86
Yes, you must specify the pathes. Better you put all them together into a dcc64.cfg. See also dcc64 /h.
Upvotes: 1