Delphi为命令行生成设置可分配常量True

Delphi为命令行生成设置可分配常量True,delphi,command-prompt,Delphi,Command Prompt,在使用RAD Studio命令提示符构建项目时,出现以下错误: 错误E2064:无法将左侧分配给 我知道这与可分配类型常量问题有关,我知道在Embaracadero编译器中在何处打开它,但是我需要在编译器外部设置此设置 我的配置文件当前如下所示: <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <PropertyGroup> <DCC_HppOutput>c:\

在使用RAD Studio命令提示符构建项目时,出现以下错误: 错误E2064:无法将左侧分配给

我知道这与可分配类型常量问题有关,我知道在Embaracadero编译器中在何处打开它,但是我需要在编译器外部设置此设置

我的配置文件当前如下所示:

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
    <DCC_HppOutput>c:\d64\DCUfiles</DCC_HppOutput>
    <DCC_ObjOutput>c:\d64\DCUfiles</DCC_ObjOutput>
    <DCC_UnitSearchPath>c:\d64\sf\cis;C:\d64\Dcu64;C:\d64\ProkonRibbon;$(DCC_UnitSearchPath)</DCC_UnitSearchPath>
    <Icon_MainIcon>Frame_Icon.ico</Icon_MainIcon>
    <DCC_LocalDebugSymbols>true</DCC_LocalDebugSymbols>
    <VerInfo_Release>67</VerInfo_Release>
    <DCC_ImportedDataReferences>false</DCC_ImportedDataReferences>
    <DCC_StrictVarStrings>false</DCC_StrictVarStrings>
    <DCC_Define>_VER7;_VER7;_VER7;_VER7;$(DCC_Define)</DCC_Define>
    <DCC_DcuOutput>c:\d64\Dcu64</DCC_DcuOutput>
    <DCC_ExeOutput>c:\prokon\bin64</DCC_ExeOutput>
    <VerInfo_Keys>CompanyName=;
                FileDescription=;
                FileVersion=2.6.67.0;
                InternalName=;
                LegalCopyright=;
                LegalTrademarks=;
                OriginalFilename=;
                ProductName=;
                ProductVersion=2.6.67.0;
                Comments=23 Jul 2015
    </VerInfo_Keys>
    <VerInfo_Locale>1033</VerInfo_Locale>
    <VerInfo_MinorVer>6</VerInfo_MinorVer>
</PropertyGroup>
<ProjectExtensions>
    <Borland.Personality>Delphi.Personality.12</Borland.Personality>
    <Borland.ProjectType>OptionSet</Borland.ProjectType>
    <BorlandProject>
        <Delphi.Personality/>
    </BorlandProject>
    <ProjectFileVersion>12</ProjectFileVersion>
</ProjectExtensions>

c:\d64\d文件
c:\d64\d文件
c:\d64\sf\cis;C:\d64\Dcu64;C:\d64\ProkonRibbon$(DCC_单元搜索路径)
Frame_Icon.ico
真的
67
假的
假的
_VER7_VER7_VER7_VER7$(DCC_定义)
c:\d64\Dcu64
c:\prokon\bin64
公司名称=;
FileDescription=;
FileVersion=2.6.67.0;
内部名称=;
LegalCopyright=;
LegalTrademarks=;
原始文件名=;
产品名称=;
ProductVersion=2.6.67.0;
评论=2015年7月23日
1033
6.
Delphi.Personality.12
视起效
12

是否有方法设置此文件中的可分配类型常量属性?

标记中添加

<DCC_WriteableConstants>true</DCC_WriteableConstants>

不打算使用此功能。您需要禁用它,而不是启用它。这将是第二个最可取的选项,最可取的是更改代码,这样就不需要
WRITEABLECONST
(正如David已经指出的那样)。:-)@乌利格哈特除非我看到有证据表明有人会用某种特征射中自己的脚,否则我更愿意回答这个问题:)好吧,吹毛求疵的角落。OP询问如何在*.dproj中设置选项。你的答案进入*.pas.:-P@UliGerhardt没错,但我的建议与他的情况有关。由于在没有启用可分配类型常量的情况下无法编译代码,因此将指令放入编译器的最佳位置是源代码本身。它减轻了编辑和依赖.dproj文件中的细节的需要,这些细节有时被视为临时文件,可以被开发人员删除,也可以被IDE弄乱。我必须承认,我的代码中也有一两个
{$WRITEABLECONST on}
,用于在函数范围内模拟C静态变量。
const
  {$WRITEABLECONST ON}
  x: integer = 1;
  {$WRITEABLECONST OFF}
  y: integer = 2;

begin
  writeln(x); // -> 1
  x := 3;
  writeln(x); // -> 3
  y := 4; // does not compile
end.