C'est pas lié au fait que l'IDE essaie de copier temporairement les fichiers "quelque part" au moment de la compilation, de façon à reproduire l'arborescence de ses dossiers virtuels ?
Oui, c'est lié, si ma mémoire est bonne.
si c'est ça et que le fameux dossier "temporaire" est codé en dur sans passer par les variables d'environnement de Windows
Non, ou du moins, pas partout: dans mainunit.pas, accessible à partir de
http://trac.godzil.net/gcc4ti/browser/trunk/tigcc/ide , on trouve
GetTempPath (SizeOf (TempDir), TempDir);
Temp := AnsiString (TempDir);
if (Length (Temp) <= 0) or (not DirExists (Temp)) then begin
GetEnvironmentVariable ('TMP', TempDir, SizeOf (TempDir));
Temp := AnsiString (TempDir);
end;
if (Length (Temp) <= 0) or (not DirExists (Temp)) then begin
GetEnvironmentVariable ('TEMP', TempDir, SizeOf (TempDir));
Temp := AnsiString (TempDir);
end;
if (Length (Temp) <= 0) or (Length (Temp) > 30) or (Pos (' ', Temp) > 0) or (Pos ('TEMP', UpperCase (Temp)) <= 0) then begin
GetWindowsDirectory (TempDir, SizeOf (TempDir));
Temp := WithBackslash (AnsiString (TempDir)) + 'TEMP\';
if not DirExists (Temp) then try
MkDir (Temp);
except end;
end;
if (Length (Temp) <= 0) or (Length (Temp) > 30) or (Pos (' ', Temp) > 0) then begin
Temp := 'C:\TEMP\';
if not DirExists (Temp) then try
MkDir (Temp);
except end;
end;
Temp := WithBackslash (Temp) + IntToHex (GetCurrentProcessID, 8) + '\';
if not DirExists (Temp) then try
MkDir (Temp);
except end;
(
http://trac.godzil.net/gcc4ti/browser/trunk/tigcc/ide )