De fapt e problema de linkeditare (cred). Aşa cum am spus săptămâna trecută, sunt nevoit să dezvolt un program în pascal pentru o jucărie embedded cu un procesor StrongARM intel. Jucăria rulează linux. Dezvoltarea o fac în fpc (freepascal); am instalat varianta de cross-compilator în mandriva 2006. Jucăria vine cu Cygwin, cu versiunea de gcc pentru arm. Am copiat de acolo şi am pus în căile lui fpc toate fişierele .o de care se plângea că nu le găseşte când ajungea la linkeditare. Un program care foloseşte ncurses sau X se poate compila acum fără probleme, şi rulează corect pe arm. Boon... Problema vine când trebuie să folosesc nişte funcţii specifice device-ului, funcţii conţinute într-un fişier denumit libi8k.a. Am creat nişte unit-uri în pascal, pornind de la fişierele .h existente în mediul iniţial. Acum, când încerc o compilare/linkeditare, rezultatul este: ********************************************************************* Linking test ./libi8k.a(i7000.o)(.text+0x854c): In function `AnalogInAll': /i8klib/arm/i8k/i8k/i7000.c:2324: undefined reference to `__modsi3' ./libi8k.a(timer.o)(.text+0x120): In function `_time_set_deadline': /i8klib/arm/i8k/i8k/timer.c:60: undefined reference to `__udivsi3' ./libi8k.a(timer.o)(.text+0x15c):/i8klib/arm/i8k/i8k/timer.c:61: undefined reference to `__umodsi3' ./libi8k.a(timer.o)(.text+0x19c):/i8klib/arm/i8k/i8k/timer.c:63: undefined reference to `__divsi3' ./libi8k.a(timer.o)(.text+0x1d0):/i8klib/arm/i8k/i8k/timer.c:64: undefined reference to `__modsi3' test.pas(8,13) Error: Error while linking ********************************************************************* După săpături şi căutări, am dedus ca referinţele pe care se plânge că nu le găseşte sunt în libgcc.a. Am copiat şi fişierul ăsta unde le-am pus pe celelalte, da' eroare persistă. În nici un .h nu există nici o referire la aceste funcţii şi nici în comanda specifică de compilare cu gcc nu e vreo referire implicită la acest libgcc.a (sau gcc.a, sau pe mă-sa). Aici m-am blocat (urât, aş putea spune). Am încercat inclusiv să-i bag pe gât în linia de comandă cu "-lgcc"; nada. Ce dracu să-i mai fac?? Scuze pentru lungimea mesajului.
Şi ca să răspund la o posibilă întrebare de genul:"De ce nu scriu programul în C?". Pen'că distinsul client vrea neapărat în pascal, vrea sursele, urmând ca pe viitor să dezvolte el aplicaţia în continuare. -- Dragos P 126296 luser "La revedere. Drum bun" _______________________________________________ RLUG mailing list RLUG@lists.lug.ro http://lists.lug.ro/mailman/listinfo/rlug