Compiler construction C++;Builder XE2-调试版本和发布版本的不同可执行文件名称

Compiler construction C++;Builder XE2-调试版本和发布版本的不同可执行文件名称,compiler-construction,linker,executable,c++builder-xe2,Compiler Construction,Linker,Executable,C++builder Xe2,调试版本和发布版本是否可能有不同的可执行文件名?例如,应将可执行文件复制到同一输出目录 C:\Projects\Hello world\bin 在这种情况下,我想输出两个文件: C:\Projects\Hello world\bin\Hello world.exe 及 C:\Projects\Hello world\bin\Hello worldD.exe编译后,可以使用后期生成事件重命名可执行文件。不同的构建配置可以定义不同的事件。< P>在我的C++ Builder XE8安装中,似乎有一种

调试版本和发布版本是否可能有不同的可执行文件名?例如,应将可执行文件复制到同一输出目录

C:\Projects\Hello world\bin

在这种情况下,我想输出两个文件:

C:\Projects\Hello world\bin\Hello world.exe


C:\Projects\Hello world\bin\Hello worldD.exe

编译后,可以使用后期生成事件重命名可执行文件。不同的构建配置可以定义不同的事件。

< P>在我的C++ Builder XE8安装中,似乎有一种更清洁的方式来完成它,尽管它不能通过IDE来设置。而且,正如其他地方所指出的,调试似乎仍在中断

从我安装的副本上的
CodeGear.Cpp.Targets
文件中,我们有:

<!-- Output Directories and Filenames -->
<OutputName Condition="'$(OutputName)'==''">$(MSBuildProjectName)</OutputName>
<FinalOutput Condition="'$(FinalOutput)'==''">$(FinalOutputDir)$(DllPrefix)$(OutputName)$(DllSuffix)$(OutputExt)$(DllVersion)</FinalOutput>

$(MSBuildProjectName)
$(FinalOutputDir)$(DllPrefix)$(OutputName)$(DllSuffix)$(OutputExt)$(DllVersion)
因此,看起来您可以自己设置OutputName属性,以便根据每个配置更改输出文件名

例如,在一个简单的VCL表单应用程序上,我可以将其设置为调试Win32配置,如下所示:

<PropertyGroup Condition="'$(Cfg_1_Win32)'!=''">
    <OutputName>testmyapp</OutputName>
    <snip>

testmyapp
显然,您希望在适当的
PropertyGroup
元素中复制此行。如果这没有意义,我建议阅读MSBuild属性组和条件是如何工作的,因为这是Embarcadero构建系统的基础

如果整个情况困扰您,我建议您投票支持我在此处创建的功能请求:

如果您在后期生成中重命名或移动(而不是复制)可执行文件,您不能再按F9来运行/调试它,因为IDE需要原始名称:/I我想知道为什么您不能再像在BCB中那样调整XE中的输出可执行文件名称。您可以在大多数或所有其他环境中执行此操作。。。看起来命令行链接器ilink32允许这样做,但我不知道是否可以在IDE/项目设置中配置它。而且它很可能会混淆IDE,就像移动/重命名一样。