有没有人知道delphi的构建系统有什么好的描述? (我知道它正在使用MS Build。)我正在使用delphi 2009。
我想设置一个Debug构建配置的变体(通常)有不同的定义(d2009似乎称它们为“预处理器符号”)。
我遇到的问题是 - 即使我关闭“继承”为“基础”和“调试” - 只有非常有限的控制。例如,我无法摆脱FastMM _。
<PropertyGroup>
<ProjectGuid>{D7FE7347-8E2C-438C-A275-38B8DA9244B0}</ProjectGuid>
<ProjectVersion>12.0</ProjectVersion>
<MainSource>oca.dpr</MainSource>
<Config Condition="'$(Config)'==''">Debug</Config>
<DCC_DCCCompiler>DCC32</DCC_DCCCompiler>
</PropertyGroup>
<PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''">
<Base>true</Base>
</PropertyGroup>
<PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''">
<Cfg_1>true</Cfg_1>
<CfgParent>Base</CfgParent>
<Base>true</Base>
</PropertyGroup>
<PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''">
<Cfg_2>true</Cfg_2>
<CfgParent>Base</CfgParent>
<Base>true</Base>
</PropertyGroup>
<PropertyGroup Condition="'$(Base)'!=''">
<DCC_StringChecks>off</DCC_StringChecks>
<DCC_MinimumEnumSize>4</DCC_MinimumEnumSize>
<DCC_RangeChecking>true</DCC_RangeChecking>
<DCC_IntegerOverflowCheck>true</DCC_IntegerOverflowCheck>
<DCC_UNIT_PLATFORM>false</DCC_UNIT_PLATFORM>
<DCC_SYMBOL_PLATFORM>false</DCC_SYMBOL_PLATFORM>
<DCC_DcuOutput>.\dcu</DCC_DcuOutput>
<DCC_UnitSearchPath>C:\Prj\Lib\AutoQADocking\Delphi2009.Win32\Lib;$(BDS)\Source\DUnit\src;$(DCC_UnitSearchPath)</DCC_UnitSearchPath>
<DCC_Optimize>false</DCC_Optimize>
<DCC_DependencyCheckOutputName>oca.exe</DCC_DependencyCheckOutputName>
<DCC_ImageBase>00400000</DCC_ImageBase>
<DCC_UnitAlias>WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;$(DCC_UnitAlias)</DCC_UnitAlias>
<DCC_Platform>x86</DCC_Platform>
<DCC_E>false</DCC_E>
<DCC_N>false</DCC_N>
<DCC_S>false</DCC_S>
<DCC_F>false</DCC_F>
<DCC_K>false</DCC_K>
</PropertyGroup>
<PropertyGroup Condition="'$(Cfg_1)'!=''">
<DCC_PentiumSafeDivide>true</DCC_PentiumSafeDivide>
<DCC_Optimize>true</DCC_Optimize>
<DCC_IntegerOverflowCheck>false</DCC_IntegerOverflowCheck>
<BRCC_Defines>MadExcept;FastMM;$(BRCC_Defines)</BRCC_Defines>
<DCC_AssertionsAtRuntime>false</DCC_AssertionsAtRuntime>
<DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols>
<DCC_Define>RELEASE;$(DCC_Define)</DCC_Define>
<DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo>
<DCC_DebugInformation>false</DCC_DebugInformation>
</PropertyGroup>
<PropertyGroup Condition="'$(Cfg_2)'!=''">
<DCC_DebugInfoInExe>true</DCC_DebugInfoInExe>
<BRCC_Defines>FastMM</BRCC_Defines>
<DCC_DebugDCUs>true</DCC_DebugDCUs>
<DCC_MapFile>3</DCC_MapFile>
<DCC_Define>DEBUG;FastMM_;madExcept;$(DCC_Define)</DCC_Define>
</PropertyGroup>
我甚至不得不用记事本编辑它,以摆脱Delphi UI似乎无法访问的DCC定义。 (对于我无法删除的项目,它说“来自Delphi编译器”。)
有没有人知道在delphi中使用这个功能的一个很好的入门书?
谢谢你!答案 0 :(得分:1)
您是否看过Delphi自己的documentation? (这不是一个帮助文件链接,也不是一个Web URL。)它对该主题进行了一些非常好的讨论。
您还可以查看MSBuild上的MSDN部分。该链接指向MSBuild参考主题的开头。
在Delphi中使用MSBuild与在任何其他环境中使用MSBuild完全相同。毕竟,它是一个Microsoft工具(随.NET Framework SDK一起发布,IIRC)。