Доброго дня уважаемые
есть программа написана на C но несколько функций используются из написанной не мной программы на Pascal. Раньше я использовал для их компиляции gpc но после но после обновления Дебиана его в репозиториях не осталось собирать в ручную тоже проблемно тк он работает только со старыми версиями gcc. Потому я решил что надо переходить на fpc но тут встал вопрос ликовки у gpc была libgpc которая просто добавлялось и все проблемы снимались у fpc я такого не нашел. Тыкаясь в слепую пришел к следующему
тестовый сисходник Pascal
unit PasTest;
Interface
type recT=record
i : integer;
arr : array [1..5] of double;
end;
procedure P(var rec :recT );
Implementation
procedure P(var rec :recT );
Begin
rec.i := 2;
rec.arr[1]:=0.1;
rec.arr[2]:=0.2;
End; { P3 }
End.
его компиляция
###@###:~/tmp/testPas$ fpc PasTest.pas
Free Pascal Compiler version 2.6.0-9 [2013/04/14] for x86_64
Copyright (c) 1993-2011 by Florian Klaempfl and others
Target OS: Linux for x86-64
Compiling PasTest.pas
22 lines compiled, 0.0 sec
###@###:~/tmp/testPas$ nm PasTest.o
0000000000000018 D INIT_PASTEST_RECT
0000000000000000 T PASTEST_P$RECT
0000000000000028 D RTTI_PASTEST_DEF1
0000000000000048 D RTTI_PASTEST_RECT
U RTTI_SYSTEM_DOUBLE
U RTTI_SYSTEM_SMALLINT
0000000000000000 D THREADVARLIST_PASTEST
0000000000000008 D _$PASTEST$_Ld1
0000000000000010 D _$PASTEST$_Ld2
исходник на с
#include<stdio.h>
typedef struct {
long int i;
double arr[5];
} recT;
void PASTEST_P(recT *rec);
int main(int argc, char **argv, char **envp)
{
recT rec;
PASTEST_P(&rec);
printf ("i=%Ld, arr[0] = %e\n",rec.i, rec.arr[1]);
}
###@###:~/tmp/testPas$ gcc test.c PasTest.o
/tmp/ccPITSiR.o: In function `main':
PasTest.o:(.data+0x3a): undefined reference to `RTTI_SYSTEM_DOUBLE'
PasTest.o:(.data+0x56): undefined reference to `RTTI_SYSTEM_SMALLINT'
collect2: error: ld returned 1 exit status
где находятся эти RTTI_SYSTEM_DOUBLE и RTTI_SYSTEM_SMALLINT и как вообще это делается если делается?
Заранее спасибо.