E2201 La référence de donnée importée est nécessaire ($G) pour accéder à '%s' depuis l'unité '%s' (Delphi)

De RAD Studio
Aller à : navigation, rechercher

Remonter à Messages d'erreur et d'avertissement (Delphi)

L'unité nommée dans le message n'a pas été compilée avec la bascule $G activée.


(*$IMPORTEDDATA OFF*)
unit u0;
interface
implementation
begin
  Writeln(System.RandSeed);
end.

program u1;
  uses u0;
end.

Dans l'exemple ci-dessus, u0 doit être compilé seul. Puis, u1 doit être compilé avec CLXxx (où xx représente la version). Le problème se produit car u0 est compilé en partant du principe qu'il n'utilisera jamais les données résidant dans un package.


(*$IMPORTEDDATA ON*)
unit u0;
interface
implementation
begin
  Writeln(System.RandSeed);
end.

program u1;
  uses u0;
end.


Pour alléger le problème, il est généralement plus facile d'activer la bascule $IMPORTEDDATA et de recompiler l'unité produisant l'erreur.