Помогите Разобраться

  • Автор темы Viktor
  • Дата начала
V

Viktor

#1
программа писалась не мной, она рабочая, но при запуске выдаются эти ошибки(запускаю код в TC):
Linker Error: undefined symbol '_spa' in module
Linker Error: undefined symbol '_copy' in module
Linker Error: undefined symbol '_getrec' in module


#include <stdio.h>
#include <db.h>
#include <alloc.h>
#include <les.h>
#include <string.h>
extern char galas;
char file1[80];
char bigbuf[80];
extern FILE *fatid();
FILE *f1;
char b3el[]="muk.gir.kv.mk.admir.pl";
FILE *fp3;
char *k, *a3;
struct ee
{
char muk[8];
char gir[2];
char kv[4];
char mk[6];
char admr[3];
char pl[5];
} e3;
struct dat
{
char gir[2];
char kv[4];
char mk[6];
char admr[3];
long pl1;
long kol;
}e;
char z33 []="norm=13000002";
char z44 []="21-4.40--31";
char *zxp2[4];
int pozg, bn3, m, i, i1,k0,kk1,kk0,kk2;
long num(), plv[4],itl[2],itk[2],itll[2];
char p2[] [56]={
"---------------------------------------",
"nom.kv:kat.za:adm:les:rel:fun:plo:kol:",
"---------------------------------------",
"\0"};
char p6[]="10450052";
char p3[134];
char p5[130];
char hles[4],girr[2],mkr[6],adr[3],nkvr[4];

main()
{
cpystr(file1,argkat (2,"99"));
strcat(file1,"\\wrp.rub");
copy(e3.gir,"00",2);
copy(e.kv,"0000",4);
copy(e.mk,"000000",6);
copy(e.admr,"000",3);
e.kol=0;
e.pl1=0;
cpystr(b4, argkat(2,"4"));
bn3=dbopen("3","&",b3el);
m=0;

pb3:while ((pozg=getrec(bn3,&e3)) > 0)
{
if (m==0)
{
tek2(bkon("3"),0,bn3);
f1 = fatid(file1,"wb");
zxxx(b4,zxp2,z33,z44);
copy(hles,e3.muk+6,2);
copy(girr,"00",2);
copy(mkr,"000000",6);
copy(nkvr,"0000",4);
copy(adr,"000",3);
m=1;
for(i=0;i<2;i++)
{
itk=0;
itl=0;
itll=0;
}
spa(1,p2,p3,0,0,0);
}
k0=0;
copy(e.gir,e3.gir,2);
copy(e.kv,e3.kv,4);
copy(e.mk,e3.mk,6);
copy(e.admr,e3.admr,3);
e.pl1=num(e3.pl,5);
e.kol+=1;
fpat(&e,sizeof(struct dat),f1);
goto pb3;
}
fclose(f1);
sprintf(bigbuf,"xsort %s 320015",file1);
system(bigbuf);

f1=fatid(file1,"rb");
kk1=0;
i=0;
mm:while(fgat(&e,sizeof(struct dat),f1)>0)
{
if(strncmp(e.gir,girr,2)!=0)
{
if(kk1!=0)
{
pech();
cpystr(p3+10,"itogo");
spa(0,0,p3,0,0,0);
k=p5;
k+=sprintf(k,"%1d&%1d&&",itl[0],itl[1]);
spa(0,0,p3,0,p5,p6);

for(i=0;i<2;i++)
{
itll+=itl;
itl=0;
}
}
copy(girr,e.gir,2);
cpystr(p3+5,"uchastkovoe:");
copy(hles+2,e.gir,2);
for(a3=zxp2[0];a3<zxp2[1];a3+=36)
if(strncmp(a3,hles,4)==0)
copy(p3+28,a3+4,32);
spa(0,0,p3,0,0,0);
kk1=1;
copy(nkvr,"0000",4);
}
mm1:
if(strncmp(e.kv,nkvr,4)==0 && strncmp(e.mk,mkr,6)==0 && strncmp(e.admr,adr,3)==0)
{
itl[0]+=e.pl1;
itl[1]+=1;
itk[0]+=e.pl1;
itk[1]+=1;
kk2=1;
goto mm;
}

if(itk[0]!=0)
pech();
copy(nkvr,e.kv,4);
copy(mkr,e.mk,6);
copy(adr,e.admr,3);
goto mm1;
}
pech();
cpystr(p3+10,"itogo po uch");
spa(0,0,p3,0,0,0);
k=p5;
k+=sprintf(k,"%1d&%1d&&",itll[0],itll[1]);
spa(0,0,p3,0,p5,p6);

spa(3,0,0,0,0,0);
fprintf(stderr,"\nvvv konec");
}

pech()
{
copyg(p3+1,nkvr,4);
copy(p3+8,mkr,6);
copy(p3+16,adr,3);
k=p5;
sprintf(p5,"%1d&%1d&&",itk[0],itk[1]);
spa(0,0,p3,0,p5,p6);
itk[0]=0;
itk[1]=0;
}
 
R

rrrFer

#2
запускаю код в TC
ТС - это топикастер, т.е. Вы.

Запостили Вы не весь код, тут подключаются всякие db.h, которые ни я ни gcc не знаем. А вот если подсоединить эти .h файлы - то МБ и проблема решиться?
Linker Error: undefined symbol '_spa' in module
spa - это имя функции, которая не определена в вашем коде. Если вы уверены, что код рабочий - ищите ее в .h файлах.