ich habe aus dem Buch "Freepascal 2" die Beispiele von Seite 58/59 nachvollzogen und bin dabei auf den Fehler
Code: Alles auswählen
Inconsistency detected by ld.so: dl-fini.c: 195: _dl_fini: Assertion `ns != 0 || i == nloaded' failed!
Die Beispiele sehen wie folgt aus:
Code: Alles auswählen
library subs;
function SubStr(CString :PChar; FromPos, ToPos : LongInt): PChar;
var
Length :Integer;
begin
Length := StrLen(CString);
SubStr := CString + Length;
if (FromPos > 0) and (ToPos >= FromPos) then begin
if Length >= FromPos then
SubStr := CString + FromPos -1;
if Length > ToPos then
CString[ToPos] := #0;
end;
end;
exports
SubStr;
Code: Alles auswählen
program test_subs;
function SubStr(const CString: PChar; FromPos, ToPos :LongInt): PChar; CDecl; External 'subs';
var
s :PChar;
FP, TP :Integer;
begin
s := 'Test';
FP := 2;
TP := 3;
WriteLn(SubStr(s, FP, TP));
end.
Code: Alles auswählen
fpc subs
Code: Alles auswählen
fpc test_subs
Der Aufruf
Code: Alles auswählen
./test_subs
Was habe ich falsch gemacht / Übersehen?
MfG
Günter