On 14 aug 2006, at 15:33, Jonas Maebe wrote:
I'm not sure where exactly 119 fits in here, unless length(binstr)
(full path to your copy of ar) around 120 chars or so.
I forgot to add some more relevant code:
Replace(cmdstr,'$LIB',maybequoted
(current_module.staticlibfilename^));
{ create AR commands }
success := true;
nextcmd := cmdstr;
current := TStringListItem(SmartLinkOFiles.First);
repeat
Replace(nextcmd,'$FILES',GetNextFiles(240 - length(nextcmd)
+ 6 - length
(binstr) - 1, current));
success:=DoExec(binstr,nextcmd,false,true);
nextcmd := cmdstr;
until (not assigned(current)) or (not success);
The first replace already puts the library name in the string. So if
the directory + name of that library (which always is in a subdir of
the unit output directory) is around 120 chars, things do add up.
Not sure how to fix this properly though, except by finally doing
that whole "replace Dos and shortstrings with Sysutils and
ansistrings for all external interfacing in the compiler" thing.
Jonas
_______________________________________________
fpc-pascal maillist - fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal