Entwickler-Ecke

Sonstiges (Delphi) - [FastMM] $G benötigt


_frank_ - Do 28.09.06 19:08
Titel: [FastMM] $G benötigt
Auf der Suche nach Speicherlecks hab ich mal probiert meinen DFMEdit unter delphi 7 mit der aktuellen FastMM472 zu kompilieren.
Dabei springt mich folgende Fehlermeldung an:


Quelltext
1:
für den Zugriff auf 'isMultiThead' von Unit FastMM4 wird die Referenz auf importierte Daten ($G) benötigt                    


ich habe versucht per {$G+} in der Projektdatei, in der Fastmm4.pas und in meiner Main-form-unit diese Compileranweisung zu setzen. leider vergebens.
Bei google bzw. in der readme hab ich keine Infos dazu gefunden.

Hat evtl. jemand eine Idee?

Gruß Frank


0xCC - Do 28.09.06 20:38

(C) DELPHI HILFE hat folgendes geschrieben:

Bei der Compilierung der in der Meldung angegebenen Unit war der Schalter $G nicht aktiviert.

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

program u1;
uses u0;
end.

In diesem Beispiel soll die Unit u0 allein compiliert werden. Anschließend soll eine Compilierung von u1 zusammen mit CLXxx erfolgen (wobei 'xx' die Version bezeichnet). Das Problem tritt hier auf, weil Unit u0 unter der Voraussetzung compiliert wurde, dass sie nie auf die Daten eines Package zugreift.

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

program u1;
uses u0;
end.


Das Problem lässt sich am einfachsten durch eine erneute Compilierung der Fehler verursachenden Unit mit aktivierter Option $IMPORTEDDATA lösen.


_frank_ - Fr 29.09.06 11:11

hab jetzt bei jeder unit (auch fastmm4, welche in der Fehlermeldung steht) als erstes (vor unit/program) den genannten Compilerschalter sowohl als
{$G+}
{$IMPORTEDDATA ON}
(*$IMPORTEDDATA ON*)
eingefügt trotzdem kommt die Fehlermeldung...
in der fastMM wird der compilerschlater auch nicht ausgeschaltet.

Gruß Frank


0xCC - Fr 29.09.06 12:47

lösch mal die bestehende fastmm4.dcu, oder versuch die datei auf der commandozeile mit dcc32.exe zu compilen


_frank_ - Fr 29.09.06 13:00

compilieren geht, aber trotzdem der fehler...
hab auch in der projectdatei jetzt nur "fastmm4," geschrieben, damit er die dcu nimmt...

Gruß Frank


_frank_ - Fr 29.09.06 16:30

gelöst:
man muss die Option UseRuntimePackages in der inc-datei aktivieren

Gruß Frank