IDE中的编译器指令而不是Project文件?

时间:2011-06-27 20:55:47

标签: delphi

Delphi 7:是否可以在IDE中设置编译条件(如工具,环境选项)而不是项目,选项,条件下的项目?

我们有一个编译器指令,需要在开发人员的机器上编译时定义,但在构建版本时未定义。

我们不想使用IFDEF DEBUG,因为我们偶尔会发送调试代码。

我们不想使用包含文件,因为我们冒着风险进入我们的源代码控制系统。

理想情况下,我们可以创建一个编译器指令,就像IDE环境变量一样,它不会保存在源代码树中。

有什么建议吗?

4 个答案:

答案 0 :(得分:2)

解决方案是使用像FinalBuilder这样的构建工具来构建。通过这种方式,您可以完全确定每次都可以运行良好的构建,并且不要忘记将某些选项设置回应该是什么。我过去常常做一些构建,现在只需点击一下,我就完成了。

答案 1 :(得分:1)

自动化它很难(尽管你对包含文件的限制听起来有点人为,只需把它放在源代码控制中并在构建脚本中用不同的版本替换磁盘上的版本),为什么不强迫你的个人开发人员转向它手动吗?

  1. 在构建脚本中引入额外的DEFINE(例如FINAL_BUILD)
  2. 在源代码中引入编译时错误,迫使开发人员将其打开。
  3.   {$IFNDEF FINAL_BUILD}
        {$IFNDEF VERY_SPECIAL_COMPILER_DIRECTIVE_YOU_WANT_TURNED_ON
          You should have really turned option X on. Now things don't compile.
        {$ENDIF}
      {$ENDIF}
    

    最后,引入类似的编译时错误,以确保FINAL_BUILD和特殊指令永远不会同时打开。

答案 2 :(得分:0)

您可以在项目选项中使用条件定义

这将在开始编译项目

时将自定义定义传递给编译器

在Delphi IDE中执行此操作 项目>选项> Delphi编译器>条件定义

答案 3 :(得分:0)

当然,在代码中添加{$DEFINE MYCONDITION}会添加一个自定义指令,您可以使用{$IFDEF MYCONDITION}进行检查,但您应该已经知道了。但是,如果您从commandline DCC32 -D MYCONDITION ...编译项目,则可以使用(或不使用)该选项进行编译。

相关问题