在 Delphi 7 命令行编译器的帮助下,我发现只需使用一个选项即可定义条件编译指令:
-D<syms> = Define conditionals
有没有可能取消定义一个条件?
我在IDE中定义了DEVELOPMENT,希望在命令行编译器中只定义PRODUCTION。问题是命令行编译器保留了IDE的定义。我希望像C语言中那样,简单地取消定义。
-D<syms> = Define conditionals
有没有可能取消定义一个条件?
我在IDE中定义了DEVELOPMENT,希望在命令行编译器中只定义PRODUCTION。问题是命令行编译器保留了IDE的定义。我希望像C语言中那样,简单地取消定义。
如果您没有提供命令行选项,您可以在您的单元或包含文件中添加额外的条件语句,像这样:
{$DEFINE FOO}
// Allow us to undefine foo at the command line by defining UNDEFFOO
{$IFDEF UNDEFFOO}
{$UNDEF FOO}
{$ENDIF}
{$IFDEF FOO}
...
{$ENDIF}
{$UNDEF NAME}
来取消定义符号,相当于C和C++中的#undef
。取消条件编译只适用于单元级别,不能在整个项目中应用。换句话说,您无法在命令行上取消条件编译。这与C或C++工具集提供的功能没有区别。.inc
文件中,然后在每个依赖于这些定义的源文件的头部包含该文件。如果您以这种方式安排事情,则拥有所需的所有灵活性。DCC32
)时如何取消定义IDE项目配置中定义的符号的问题。我不会点踩,因为我可能漏掉了什么。?? - Ken White
{$IFDEF DEVELOPMENT}
指令替换为{$IFNDEF PRODUCTION}
等等。这取决于DEVELOPMENT
和PRODUCTION
是否是互斥的。 - Uli Gerhardt