【问题标题】:C++ Builder XE2 - different executable name for debug and release versionC++ Builder XE2 - 调试和发布版本的不同可执行文件名称
【发布时间】:2012-08-02 10:44:27
【问题描述】:

调试版本和发布版本可以有不同的可执行文件名吗?例如,可执行文件应复制到相同的输出目录

C:\Projects\Hello world\bin

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

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

和

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

【问题讨论】:

    标签: compiler-construction linker executable c++builder-xe2


    【解决方案1】:

    您可以在编译后使用 Post-Build 事件重命名可执行文件。不同的构建配置可以定义不同的事件。

    【讨论】:

    • 如果您在 Post-build 中重命名或移动(而不是复制)可执行文件,则不能再按 F9 来运行/调试它,因为 IDE 需要原始名称:/ 我想知道为什么您不能不再像在 BCB 中那样调整 XE 中的输出可执行文件名称。你可以在大多数或所有其他环境中做到这一点......看起来命令行链接器 ilink32 允许这样做,但我不知道是否可以在 IDE/项目设置中配置它。无论如何,它很可能会混淆 IDE,就像移动/重命名一样。
    【解决方案2】:

    在我的 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>
    

    因此,您似乎可以自己设置 OutputName 属性以根据每个配置更改输出文件名。

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

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

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

    如果整个情况让您感到困扰,我建议为我在此处创建的功能请求投票:https://quality.embarcadero.com/browse/RSP-13108

    【讨论】:

      猜你喜欢
      • 2018-01-11
      • 1970-01-01
      • 2019-08-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多