Delphi Error – E2173 Missing or invalid conditional symbol in ‘$%s’ directive

Delphi Compiler Error

E2173 Missing or invalid conditional symbol in ‘$%s’ directive

Reason for the Error & Solution

The $IFDEF, $IFNDEF, $DEFINE and $UNDEF directives require that a symbol follow them.

program Produce;

(*$IFDEF*)
(*$ENDIF*)

begin
end.

The $IFDEF conditional directive is incorrectly specified here and will result in an error.

program Solve;

(*$IFDEF WIN32*)
(*$ENDIF*)

begin
end.

The solution to the problem is to ensure that a symbol to test follows the appropriate directives.