Ich beginne gerade, mich auf der Raspberry-Plattform (ARM) umzutun und versuche mich im Zusammenspiel von gcc und fpc. Dabei bleibe ich schon am Anfang mit einer (Linker-)Meldung "undefined reference to `__aeabi_idivmod'" hängen (FPC-Programm ruft C-Object, in dem ein '%' ausgeführt wird). Wenn ich das laienhaft verstehe, bindet FPC das EABI nicht richtig ein?!?
Welchen Fehler mache ich, kann mir jemand einen Hinweis geben (Beispiel anbei)?
Code: Alles auswählen
extern int cfun(int i,int j);
int cfun2(int i, int j) {
return i % j; // ohne '%'-Operator klappt's...
}
Code: Alles auswählen
unit pfun;
{$link cfun.o}
interface
function cfun(par1,par2: Integer): Integer; cdecl; external;
implementation
end.
Code: Alles auswählen
program main;
uses pfun;
begin
writeln('cfun(41,3) -> ', cfun(41,3));
end.
Code: Alles auswählen
gcc -c cfun.c -o cfun.o
fpc pfun.pas
fpc main.pas
Target OS: Linux for ARMHF
Compiling main.pas
Assembling main
Linking main
/usr/bin/ld: warning: link.res contains output sections; did you forget -T?
cfun.o: In function `cfun':
cfun.c:(.text+0x20): undefined reference to `__aeabi_idivmod'
main.pas(4,26) Error: Error while linking
main.pas(4,26) Fatal: There were 1 errors compiling module, stopping
Fatal: Compilation aborted[/code]
Danke