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

Тема в разделе "C и С++ FAQ", создана пользователем Viktor, 14 авг 2012.

  1. Viktor

    Viktor Гость

    программа писалась не мной, она рабочая, но при запуске выдаются эти ошибки(запускаю код в 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;
    }
     
  2. rrrFer

    rrrFer Well-Known Member
    Команда форума C\C++ Team

    Регистрация:
    6 сен 2011
    Сообщения:
    1.324
    Симпатии:
    36
    ТС - это топикастер, т.е. Вы.

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

Поделиться этой страницей