Не работает программа (ошибка undefined reference) - C (СИ)

Узнай цену своей работы

Формулировка задачи:

База данных Евровидение

Интерфейс информационной системы будет представлен в виде меню, т.к. он является наиболее удобным и обеспечивает наименьшее время доступа к данным. Перемещение по пунктам меню будет осуществляться с помощью клавиш управления курсором. А так же в программе будет представлено несколько «горячих клавиш», для удобства пользования программой. Для предоставления пользователю информации о разработчике и версии данной программы в информационной системе при ее запуске на экран будет выводиться информационная заставка. Исходя из того, что при первом знакомстве с программой пользователю нужно дать краткую информацию о работе с ней, в программе будет содержаться функция ”Помощь”, загружаемая «горячей клавишей» F1. Так как конкурс проходит каждый год, то нужно обновлять имеющуюся базу данных. Чтобы пользователь постоянно мог пополнять базу данных (вносить сведения о новых местах проведения конкурса, и победителях) будет предусмотрен пункт меню “Добавить”. Для удаления любой выбранной записи из информационной системы будет предусмотрен пункт меню “Удаление”. Имеющуюся информацию, при неправильном вводе или при ее обновлении, необходимо редактировать, для этого в информационной системе будет предусмотрен пункт меню “Редактировать”. Оформление пункта меню “Редактировать” будет осуществлено с возможностью выбора любой записи из таблицы при помощи введения года записи подлежащей редактированию. Это обусловлено тем, что такой метод позволяет наиболее быстро обратиться к нужным пользователю данным. Для быстрого поиска полной информации об имеющихся записях о конкурсе меню также будет содержать пункт “Поиск”. Будет предусмотрен пункт меню “Выборка”, позволяющий вывести информацию по стране победившей в конкурсе, или стране в которой проводился конкурс, в зависимости от желания пользователя. Для завершения работы с программой и выхода в операционную систему будет предусмотрена функция “Выход” осуществляемая при помощи комбинации клавиш Alt+X. Вход в меню будет осуществляться при помощи нажатия «горячей клавиши» F10.
#include<conio.h>
#include<string.h>
#include<stdio.h>
#include <windows.h>

void gotoxy(int x, int y) 
 { 
 HANDLE hConsoleOutput; 
 COORD dwCursorPosition; 
 
 dwCursorPosition.X = x; 
 dwCursorPosition.Y = y; 
 hConsoleOutput = GetStdHandle(STD_OUTPUT_HANDLE); 
 SetConsoleCursorPosition(hConsoleOutput,dwCursorPosition); 
 }
void clrscr() 
 { 
 system("cls"); 
 }
int draw_window(int col_bg,int col_end,int row_bg,int row_end,int color);
int draw_table_col(int col,int row_bg,int row_end);
int up_menu(int col_bg,int col_end,int row,int color);
int down_menu(int col_bg,int col_end,int row,int color);
int clean_row(int col_bg,int col_end,int row,int color);
void start_window(void);
void help(void);
void work_window(void);
 
int up_menu_new(int col_bg,int col_end,int row,int color);
int up_menu_edit(int col_bg,int col_end,int row,int color,int m,int n);
int up_menu_filter(int col_bg,int col_end,int row,int color,int m,int n);
int up_menu_find(int col_bg,int col_end,int row,int color,int m,int n);
void head_table(void);
void work_table(void);
int button_ok(int col_bg,int row_bg);
int button_cancel(int col_bg,int row_bg);
int button(int col_bg,int row_bg);
void delete1(int del);
void window_add_new(void);
void window_edit(void);
void window_filter(void);
void window_find(void);
 
void sort_info(void);
void add(void);
void copy_add(void);
int print_to_screen(int nscr,int fil);
int find(int m,int n);
 
main()
{
 int ikey,key,m,n,n1,rikey,year,nscr=0,fil=0;
 FILE *f_dat,*f_tmp;
 struct EV{
       int date;
       char count_own[20];
       char count_win[20];
       char artist[50];
       char sound[50];
      } EV;

 clrscr();
 start_window();
 work_window();
  A:
 f_dat=fopen("data.dat","rt");
 f_tmp=fopen("temp.dat","rt");
 if(f_dat!=NULL && f_tmp!=NULL)
  {
   if(key!=73&&key!=81&&key!=59&&key!=60)
    sort_info();
   nscr=print_to_screen(nscr,fil);
   gotoxy(70,24);
   
   // 0 = Г—ГҐГ°Г*ûé 8 = Ñåðûé
//1 = ÑèГ*ГЁГ© 9 = Ñâåòëî-Г±ГЁГ*ГЁГ©
//2 = ÇåëåГ*ûé A = Ñâåòëî-çåëåГ*ûé
//3 = Ãîëóáîé B = Ñâåòëî-ãîëóáîé
//4 = ГЉГ°Г*Г±Г*ûé C = Ñâåòëî-ГЄГ°Г*Г±Г*ûé
//5 = Ëèëîâûé D = Ñâåòëî-ëèëîâûé
//6 = Æåëòûé E = Ñâåòëî-æåëòûé
//7 = Áåëûé F = ßðêî-áåëûé
// 2 - Г§Г*Г*Г·ГҐГ*ГЁГҐ öâåòГ* ГґГ®Г*Г*, 0 - Г§Г*Г*Г·ГҐГ*ГЁГҐ öâåòГ* ГІГҐГЄГ±ГІГ* 
   system("color 1" );
   printf("PgUp/PgDn");
   gotoxy(80,25);
  }
  else
   {
    if(f_dat!=NULL&&f_tmp==NULL)
    {
     f_dat=fopen("data.dat","rt");
     f_tmp=fopen("temp.dat","wt");
     goto A;
    }
    else
     f_dat=fopen("data.dat","wt");
    f_tmp=fopen("temp.dat","wt");
   }
 if(fil!=0)
  {
   gotoxy(20,6);
   system("color 5" );
   printf("F2-Вў®§ВўГ**Гў Вў ®ВЎГ«Г§*Г«© Г*ВҐ¦ВЁ¬ ВЇГ*®ГЎ¬®ГўГ**.");
   gotoxy(80,25);
  }
 do
  {
   rikey=0;
   if((key=getch())==0) key=getch();
   switch(key)
    {
     case 59: help(); getch(); work_window(); goto A;
     case 60: fil=0; nscr=0; goto A;
     case 73: nscr--; if(nscr<0) nscr=0; goto A;
     case 81: nscr++; goto A;
     case 193: key=45; break;
     case 68: up_menu_new(1,80,1,3);
          m=0;
          n=0;
          nscr=0;
          clean_row(1,80,25,3);
          gotoxy(10,25); printf("Esc-‚®§ВўГ**Гў Вў Г*ВҐ¦ВЁ¬ ВЇГ*®ГЎ¬®ГўГ**");
          gotoxy(50,25); printf("Enter-‚ë¡®Г* ®ВЇВҐГ**樨");
          gotoxy(80,25);
          do
           {
        if((ikey=getch())==0) ikey=getch();
        switch(ikey)
         {
          case 77: m++; if(m>3) m=0;break;
          case 75: if(m>0) m--; else m=3;break;
          case 80: if(m==1||m==2||m==3){n++; if(n>1) n=0;};break;
          case 72: if(m==1||m==2||m==3){if(n>0) n--; else n=1;};break;
          case 13: rikey=ikey; ikey=27; break;
         }
        if(m==0)
         {
          head_table(); up_menu_new(1,80,1,3);
          if(rikey==13){
                window_add_new();
                add();
                n1=button(25,21);
                if(n1==0)
                 copy_add();
                work_window();
                goto A;
                   }
         }
        if(m==1&&n==0) {
                head_table();
                up_menu_edit(1,80,1,3,m,n);
                if(rikey==13)
                 {
                  head_table();
                  window_edit();
                  gotoxy(25,13);
                  system("color 2" );
                  printf("ВЇ®¤«ВҐ¦*饩 Г*ВҐ¤*ВЄГўВЁГ*®Вў**ВЁГ®");
                  gotoxy(25,14);
                  scanf("%d",&year);
                  n1=button(25,15);
                  if(n1==0)
                   {
                    window_add_new();
                    gotoxy(32,9);
                   system("color 2" );
                    printf("&#144;ВҐ¤*ВЄГўВЁГ*®Вў*ГўГ¬   ");
                    add();
                    n1=button(25,21);
                    if(n1==0)
                     {
                      
                      copy_add();
                     }
                   }
                  work_window();
                  goto A;
                 }
                   }
        if(m==1&&n==1) {
                head_table();
                up_menu_edit(1,80,1,3,m,n);
                if(rikey==13)
                 {
                  head_table();
                  window_edit();
                  gotoxy(29,13);
                  system("color 2" );
                  printf("ВЇ®¤«ВҐ¦*饩 ГЈ¤*«ВҐ*ВЁГ®");
                  gotoxy(25,14);
                  scanf("%d",&year);
                  n1=button(25,15);
                  if(n1==0)
                   
                  work_window();
                  goto A;
                 }
                   }
        if(m==2&&n==0) {
                head_table();
                up_menu_filter(1,80,1,3,m,n);
                if(rikey==13)
                 {
                  head_table();
                  window_filter();
                  clean_row(1,80,25,3);
                  gotoxy(20,25);
                  printf("‘«®Вў* ** Г*ГЈГЎГЎВЄ®¬, ГЎ ãç¥â®¬ Г*ВҐВЈВЁГЎГўГ**.");
                  find(m,n);
                  n1=button(28,15);
                  if(n1==0)
                   {
                    fil=1;
                   }
                  work_window();
                  goto A;
                 }
                   }
        if(m==2&&n==1) {
                head_table();
                up_menu_filter(1,80,1,3,m,n);
                if(rikey==13)
                 {
                  head_table();
                  window_filter();
                  clean_row(1,80,25,3);
                  gotoxy(20,25);
                  printf("‘«®Вў* ** Г*ГЈГЎГЎВЄ®¬, ГЎ ãç¥â®¬ Г*ВҐВЈВЁГЎГўГ**.");
                  find(m,n);
                  n1=button(28,15);
                  if(n1==0)
                   {
                    fil=1;
                   }
                  work_window();
                  goto A;
                 }
                   }
        if(m==3&&n==0) {
                head_table();
                up_menu_find(1,80,1,3,m,n);
                if(rikey==13)
                 {
                  head_table();
                  window_find();
                  system("color 2" );
                  gotoxy(31,12);
                  printf("‚ВўВҐ¤ВЁГўВҐ ВЁ¬ГЇ *Г*ГўВЁГЎГў*,");
                  gotoxy(28,13);
                  printf("ВЇ® ВЄ®Гў®Г*®¬ГЈ ВЇГ*®ВўВҐГЎГўВЁ ВЇ®ВЁГЎВЄ");
                  clean_row(1,80,25,3);
                  gotoxy(20,25);
                  printf("‘«®Вў* ** Г*ГЈГЎГЎВЄ®¬, ГЎ ãç¥â®¬ Г*ВҐВЈВЁГЎГўГ**.");
                  find(m,n);
                  n1=button(28,15);
                  if(n1==0)
                   {
                    fil=1;
                   }
                  work_window();
                  goto A;
                 }
                   }
        if(m==3&&n==1) {
                head_table();
                up_menu_find(1,80,1,3,m,n);
                if(rikey==13)
                 {
                  head_table();
                  window_find();
                  system("color 2" );
                  gotoxy(29,12);
                  printf("‚ВўВҐ¤ВЁГўВҐ **§Вў**ВЁВҐ ВЇВҐГЎ*ВЁ,");
                  gotoxy(28,13);
                printf("ВЇ® ВЄ®Гў®Г*®© ВЇГ*®ВўВҐГЎГўВЁ ВЇ®ВЁГЎВЄ");
                  clean_row(1,80,25,3);
                  gotoxy(20,25);
                  printf("‘«®Вў* ** Г*ГЈГЎГЎВЄ®¬, ГЎ ãç¥â®¬ Г*ВҐВЈВЁГЎГўГ**.");
                  find(m,n);
                  n1=button(28,15);
                  if(n1==0)
                   {
                    fil=1;
                   }
                  work_window();
                  goto A;
                 }
                   }
        if(ikey==27) {up_menu(1,80,1,3); head_table(); down_menu(1,79,25,3);}
           }while(ikey!=27);/*Esc*/
     }
  }while(key!=45);/*Alt+X*/
 if(key==45)
  {
   draw_window(26,56,12,16,2);
   gotoxy(40,13);
   printf("‚ë室");
   gotoxy(31,14);
   printf("&#143;®¤ГўВўВҐГ*¦¤ВҐ*ВЁВҐ ¢ë室*");
   n1=button(29,15);
   if(n1==0)
    {
     remove("temp.dat");
     remove("add.dat");
     remove("find.dat");
    }
   else
    goto A;
  }
}
 
void work_window()
{
 down_menu(1,80,25,3);
 head_table();
 work_table();
 gotoxy(1,25);
 up_menu(1,80,1,3);
 gotoxy(80,25);
}

int draw_window(int col_bg,int col_end,int row_bg,int row_end,int color)
{
 int i,j;
 char style[]={"Г‰" "»" "Вј" "Г€" "Вє" "ГЌ"};
 system("color 2" );
 for(j=row_bg;j<=row_end;j++)
   for(i=col_bg;i<=col_end;i++)     {gotoxy(i,j); printf(" ");}
 gotoxy(col_bg,row_bg);
 printf("%c",style[0]);
 gotoxy(col_end,row_bg);
 printf("%c",style[1]);
 gotoxy(col_end,row_end);
 printf("%c",style[2]);
 gotoxy(col_bg,row_end);
 printf("%c",style[3]);
 gotoxy(col_bg,row_bg);
 for(i=col_bg+1;i<col_end;i++)  {gotoxy(i,row_bg); printf("%c",style[5]);}
 gotoxy(col_bg,row_end);
 for(i=col_bg+1;i<col_end;i++)  {gotoxy(i,row_end); printf("%c",style[5]);}
 gotoxy(col_bg,row_bg);
 for(j=row_bg+1;j<row_end;j++)  {gotoxy(col_bg,j); printf("%c",style[4]);}
 gotoxy(col_end,row_bg);
 for(j=row_bg+1;j<row_end;j++)  {gotoxy(col_end,j); printf("%c",style[4]);}
 gotoxy(80,25);
}
 
int draw_table_col(int col,int row_bg,int row_end)
{
 int j;
 char style[]={"Г‹" "ГЉ" "Вє"};
 gotoxy(col,row_bg);
 printf("%c",style[0]);
 gotoxy(col,row_end);
 printf("%c",style[1]);
 for(j=row_bg+1;j<row_end;j++)
  {gotoxy(col,j); printf("%c",style[2]);}
 gotoxy(80,25);
}
 
int up_menu(int col_bg,int col_end,int row,int color)
{
 int i;
 char  new1[15]={"„®ВЎ*ВўВЁГўГ¬"};
 char edit[15]={"&#144;ВҐ¤*ВЄГўВЁГ*®Вў*ГўГ¬"};
 char filter[15]={"‚ë¡®Г*ВЄ*"};
 char find[15]={"&#143;®ВЁГЎВЄ"};
 system("color 2" );
 gotoxy(col_bg,row);
 for(i=col_bg;i<=col_end;i++) {printf(" ");}
 gotoxy(col_bg+6,row);
 printf("%s",new1);
 gotoxy(col_bg+23,row);
 printf("%s",edit);
 gotoxy(col_bg+46,row);
 printf("%s",filter);
 gotoxy(col_bg+67,row);
 printf("%s",find);
 gotoxy(80,25);
}
 
int down_menu(int col_bg,int col_end,int row,int color)
 
{
 int i;
 char help[15]={"F1-&#143;®¬®Г©Г¬"};
 char exit[15]={"Alt+X-‚ë室"};
 char menu[10]={"F10-Е’ВҐ*Г®"};
 system("color 2" );
 gotoxy(col_bg,row);
 for(i=col_bg;i<=col_end;i++) {printf(" ");}
 gotoxy(col_bg+9,row);
 printf("%s",help);
 gotoxy(col_bg+35,row);
 printf("%s",exit);
 gotoxy(col_bg+63,row);
 printf("%s",menu);
 gotoxy(80,25);
}
 
int clean_row(int col_bg,int col_end,int row,int color)
{
 int i;
system("color 20" );
 gotoxy(col_bg,row);
 for(i=col_bg;i<col_end;i++) {printf(" ");}
 gotoxy(80,25);
}
 
int up_menu_new(int col_bg,int col_end,int row,int color)
{
 int i;
 char new1[15]={"„®ВЎ*ВўВЁГўГ¬"};
 char edit[15]={"&#144;ВҐ¤*ВЄГўВЁГ*®Вў*ГўГ¬"};
 char filter[15]={"‚ë¡®Г*ВЄ*"};
 char find[15]={"&#143;®ВЁГЎВЄ"};
 system("color 10" );
 gotoxy(col_bg,row);
 for(i=col_bg;i<=20;i++) {printf(" ");}
 gotoxy(col_bg+6,row);
 printf("%s",new1);
system("color 2" );
 gotoxy(21,row);
 for(i=21;i<col_end;i++) {printf(" ");}
 gotoxy(col_bg+23,row);
 printf("%s",edit);
 gotoxy(col_bg+46,row);
 printf("%s",filter);
 gotoxy(col_bg+67,row);
 printf("%s",find);
 gotoxy(80,25);
}
 
int up_menu_edit(int col_bg,int col_end,int row,int color,int m,int n)
{
 int i;
 char new1[15]={"„®ВЎ*ВўВЁГўГ¬"};
 char edit[15]={"&#144;ВҐ¤*ВЄГўВЁГ*®Вў*ГўГ¬"};
 char filter[15]={"‚ë¡®Г*ВЄ*"};
 char find[15]={"&#143;®ВЁГЎВЄ"};
 system("color 0" );
 gotoxy(21,row);
 for(i=21;i<=40;i++) {printf(" ");}
 gotoxy(col_bg+23,row);
 printf("%s",edit);
 system("color 2" );
 gotoxy(col_bg,row);
 for(i=col_bg;i<=20;i++) {printf(" ");}
 gotoxy(41,row);
 for(i=41;i<=col_end;i++) {printf(" ");}
 gotoxy(col_bg+6,row);
 printf("%s",new1);
 gotoxy(col_bg+46,row);
 printf("%s",filter);
 gotoxy(col_bg+67,row);
 printf("%s",find);
 gotoxy(80,25);
 if(m==1&&n==0)
  {
   draw_window(20,41,2,5,3);
   gotoxy(21,3);
   system("color 0" );
   for(i=21;i<41;i++) {printf(" ");}
   gotoxy(24,3);
   printf("&#144;ВҐ¤*ВЄГўВЁГ*®Вў*ГўГ¬");
   system("color 3" );
   gotoxy(27,4);
   printf("“¤*«ВЁГўГ¬");
   gotoxy(80,25);
  }
 if(m==1&&n==1)
  {
   draw_window(20,41,2,5,3);
   gotoxy(23,3);
   system("color 3" );
   gotoxy(24,3);
   printf("&#144;ВҐ¤*ВЄГўВЁГ*®Вў*ГўГ¬");
   system("color 0" );
   gotoxy(21,4);
   for(i=21;i<41;i++) {printf(" ");}
   gotoxy(27,4);
   printf("“¤*«ВЁГўГ¬");
   gotoxy(80,25);
  }
}
 
int up_menu_filter(int col_bg,int col_end,int row,int color,int m,int n)
{
 int i;
 char new1[15]={"„®ВЎ*ВўВЁГўГ¬"};
 char edit[15]={"&#144;ВҐ¤*ВЄГўВЁГ*®Вў*ГўГ¬"};
 char filter[15]={"‚ë¡®Г*ВЄ*"};
 char find[15]={"&#143;®ВЁГЎВЄ"};
system("color 0" );
 gotoxy(41,row);
 for(i=41;i<=60;i++) {printf(" ");}
 gotoxy(col_bg+46,row);
 printf("%s",filter);
 system("color 2" );
 gotoxy(col_bg,row);
 for(i=col_bg;i<=40;i++) {printf(" ");}
 gotoxy(61,row);
 for(i=61;i<=col_end;i++) {printf(" ");}
 gotoxy(col_bg+6,row);
 printf("%s",new1);
 gotoxy(col_bg+23,row);
 printf("%s",edit);
 gotoxy(col_bg+67,row);
 printf("%s",find);
 if(m==2&&n==0)
  {
   draw_window(40,61,2,5,3);
   gotoxy(41,3);
  system("color 0" );
   for(i=41;i<61;i++) {printf(" ");}
   gotoxy(41,3);
   printf("&#143;® ГЎГўГ***ВҐ ВЇГ*®ВўВҐ¤ВҐ*ВЁГЇ");
   system("color 3" );
   gotoxy(41,4);
   printf("&#143;® ГЎГўГ***ВҐ ВЇ®ВЎВҐ¤ВЁГўВҐ«Г®");
   gotoxy(80,25);
  }
 if(m==2&&n==1)
  {
   draw_window(40,61,2,5,3);
   gotoxy(41,3);
   system("color 3" );
   printf("&#143;® ГЎГўГ***ВҐ ВЇГ*®ВўВҐ¤ВҐ*ВЁГЇ");
   system("color 0" );
   gotoxy(41,4);
   for(i=41;i<61;i++) {printf(" ");}
   gotoxy(41,4);
   printf("&#143;® ГЎГўГ***ВҐ ВЇ®ВЎВҐ¤ВЁГўВҐ«Г®");
   gotoxy(80,25);
  }
}
 
int up_menu_find( int col_bg,int col_end,int row,int color,int m,int n)
{
 int i;
 char new1[15]={"„®ВЎ*ВўВЁГўГ¬"};
 char edit[15]={"&#144;ВҐ¤*ВЄГўВЁГ*®Вў*ГўГ¬"};
 char filter[15]={"‚ë¡®Г*ВЄ*"};
 char find[15]={"&#143;®ВЁГЎВЄ"};
system("color 0" );
 gotoxy(61,row);
 for(i=61;i<col_end;i++) {printf(" ");}
 gotoxy(col_bg+67,row);
 printf("%s",find);
 system("color 2" );
 gotoxy(col_bg,row);
 for(i=col_bg;i<=60;i++) {printf(" ");}
 gotoxy(col_bg+6,row);
 printf("%s",new1);
 gotoxy(col_bg+23,row);
 printf("%s",edit);
 gotoxy(col_bg+46,row);
 printf("%s",filter);
 if(m==3&&n==0)
  {
   draw_window(61,80,2,5,3);
   gotoxy(62,3);
   system("color 0" );
   for(i=62;i<col_end;i++) {printf(" ");}
   gotoxy(66,3);
   printf("&#143;® *Г*ГўВЁГЎГўГЈ");
   system("color 3" );
   gotoxy(66,4);
   printf("&#143;® ВЇВҐГЎ*ВҐ");
   gotoxy(80,25);
  }
 if(m==3&&n==1)
  {
   draw_window(61,80,2,5,3);
   gotoxy(66,3);
   printf("&#143;® *Г*ГўВЁГЎГўГЈ");
   system("color 3" );
   gotoxy(62,4);
   system("color 0" );
   for(i=62;i<col_end;i++) {printf(" ");}
   gotoxy(66,4);
   printf("&#143;® ВЇВҐГЎ*ВҐ");
   gotoxy(80,25);
  }
}
 
void head_table()
{
 draw_window(1,80,2,5,1);
 draw_table_col(6,2,5);
 draw_table_col(21,2,5);
 draw_table_col(35,2,5);
 draw_table_col(55,2,5);
 system("color 1" );
 gotoxy(2,3);
 printf("Ж’®¤");
 gotoxy(11,3);
 printf("‘ГўГ****");
 gotoxy(9,4);
 printf("&#143;Г*®ВўВҐ¤ВҐ*ВЁГЇ");
 gotoxy(25,3);
 printf("‘ГўГ****");
 gotoxy(23,4);
 printf("&#143;®ВЎВҐ¤ВЁГўВҐ«Г¬");
 gotoxy(41,3);
 printf("?Г*ГўВЁГЎГў");
 gotoxy(65,3);
 printf("&#143;ВҐГЎ*ГЇ");
 gotoxy(80,25);
}
 
void start_window()
{
 draw_window(20,60,5,20,3);
 gotoxy(33,6);
 printf("Е*ГЈГ*ГЎ®Вў®© ВЇГ*®ВҐВЄГў");
 gotoxy(25,8);
 printf("Л†*Г¤®Г*¬*樮**®-ВЇ®ВЁГЎВЄ®Вў*ГЇ ГЎВЁГЎГўВҐ¬*");
 gotoxy(33,9);
 printf("\"…ВўГ*®ВўВЁ¤ВҐ*ВЁВҐ\"");
 gotoxy(27,11);
 printf("&#144;*§Г**ВЎ®Гў*« ГЎГўГЈ¤ВҐ*Гў II ВЄГЈГ*ГЎ*");
 gotoxy(35,12);
 printf("”*ВЄГЈ«Г¬ГўВҐГў*");
 gotoxy(28,13);
 printf("&#157;«ВҐВЄГўГ*®**®-ВЁ*Г¤®Г*¬*樮**ëå");
 gotoxy(36,14);
 printf("ГЎВЁГЎГўВҐ¬");
 gotoxy(33,15);
 printf("Ж’Г*ГЈВЇВЇГ« &#143;&#157;-4");
 gotoxy(28,16);
 printf("‘ГЈВЈ«®ВЎ Е’*ВЄГЎВЁ¬ ‚«*¤ВЁ¬ВЁГ*®ВўВЁГ§");
 gotoxy(34,19);
 printf("&#129;Г*ВҐГЎГў 2008");
 clean_row(1,80,25,3);
 gotoxy(20,25);
 printf("„«ГЇ ВЇГ*®¤®«¦ВҐ*ВЁГЇ **¦¬ВЁГўВҐ «Г®ВЎГЈГ® ВЄ«*ВўВЁГЁГЈ...");
 gotoxy(80,25);
 getch();
}
 
void help()
{
 draw_window(20,60,5,20,3);
 gotoxy(37,6);
 printf("&#143;®¬®Г©Г¬");
 gotoxy(25,8);
 printf("Л†*Г¤®Г*¬*樮**®-ВЇ®ВЁГЎВЄ®Вў*ГЇ ГЎВЁГЎГўВҐ¬*");
 gotoxy(33,9);
 printf("\"…ВўГ*®ВўВЁ¤ВҐ*ВЁВҐ\"");
 gotoxy(25,11);
 printf("Enter ");
 gotoxy(39,11);
 printf("‚ë¡®Г*, &#143;®¤ГўВўВҐГ*¦¤ВҐ*ВЁВҐ");
 gotoxy(25,12);
 printf("Esc");
 gotoxy(39,12);
 printf("‚ë室 ВЁ§ ¬ВҐ*Г®");
 gotoxy(25,13);
 printf("Right, Left,");
 gotoxy(39,13);
 printf("“ВЇГ**Вў«ВҐ*ВЁВҐ ВЄГЈГ*ГЎ®Г*®¬");
 gotoxy(25,14);
 printf("Up, Down");
 gotoxy(25,15);
 printf("F1");
 gotoxy(39,15);
 printf("&#143;®¬®Г©Г¬");
 gotoxy(25,16);
 printf("F10");
 gotoxy(39,16);
 printf("‚ГҐ®¤ Вў ¬ВҐ*Г®");
 gotoxy(25,17);
 printf("PageUp,PageDn");
 gotoxy(39,17);
 printf("‘ВЄГ*®«ВЁ*ВЈ Гў*ВЎ«ВЁГ¦Г«");
 gotoxy(25,18);
 printf("Alt+X");
 gotoxy(39,18);
 printf("‚ë室");
 clean_row(1,80,25,3);
 gotoxy(20,25);
 printf("„«ГЇ ВЇГ*®¤®«¦ВҐ*ВЁГЇ **¦¬ВЁГўВҐ «Г®ВЎГЈГ® ВЄ«*ВўВЁГЁГЈ...");
 gotoxy(80,25);
 getch();
}
 
void work_table()
{
 draw_window(1,80,6,24,1);
 draw_table_col(6,6,24);
 draw_table_col(21,6,24);
 draw_table_col(35,6,24);
 draw_table_col(55,6,24);
 gotoxy(80,25);
}
 
void window_add_new()
{
 draw_window(15,65,8,22,2);
 gotoxy(32,9);
 printf("„®ВЎ*ВўВЁГўГ¬ §*ВЇВЁГЎГ¬");
 gotoxy(24,10);
 printf("&#143;®ГЎ«ВҐ ВўВў®¤* ¤***ëå ¦¬ВЁГўВҐ Enter");
 gotoxy(20,11);
 printf("Ж’®¤ ВЇГ*®ВўВҐ¤ВҐ*ВЁГЇ(*ВҐ ВЎ®«ВҐВҐ 4 ГЎВЁ¬Вў®«®Вў):");
 clean_row(20,61,12,5);
 gotoxy(20,13);
 system("color 2" );
 printf("‘ГўГ**** ВЇГ*®ВўВҐ¤ВҐ*ВЁГЇ(*ВҐ ВЎ®«ВҐВҐ 14 ГЎВЁ¬Вў®«®Вў):");
 clean_row(20,61,14,5);
 gotoxy(20,15);
system("color 2" );
 printf("‘ГўГ**** ВЇ®ВЎВҐ¤ВЁГўВҐ«Г¬(*ВҐ ВЎ®«ВҐВҐ 14 ГЎВЁ¬Вў®«®Вў):");
 clean_row(20,61,16,5);
 gotoxy(20,17);
 system("color 2" );
 printf("Л†ГЎВЇ®«*ВЁГўВҐ«Г¬(*ВҐ ВЎ®«ВҐВҐ 40 ГЎВЁ¬Вў®«®Вў):");
 clean_row(20,61,18,5);
 gotoxy(20,19);
 system("color 2" );
 printf("&#143;ВҐГЎ*ГЇ(*ВҐ ВЎ®«ВҐВҐ 40 ГЎВЁ¬Вў®«®Вў):");
 clean_row(20,61,20,5);
 clean_row(1,80,25,3);
 gotoxy(1,25);
 printf(" &#141;ВҐ ВЇГ*¥¢ëè*©ГўВҐ ç¨á«® ГЎВЁ¬Вў®«®Вў, Г*Гў® ¬®¦ВҐГў ВЇГ*ВЁВўВҐГЎГўВЁ ВЄ ®ГЁВЁВЎВЄВҐ ВўВў®¤*!");
 clean_row(25,38,21,3);
 gotoxy(25,21);
 printf(">&#143;®¤ГўВўВҐГ*¤ВЁГўГ¬<");
 clean_row(41,49,21,3);
 gotoxy(41,21);
 printf(">ЕЅГў¬ВҐ**<");
 gotoxy(80,25);
}
 
int button_ok(int col_bg,int row_bg)
{
 clean_row(col_bg,col_bg+13,row_bg,4);
 gotoxy(col_bg,row_bg);
 printf(">&#143;®¤ГўВўВҐГ*¤ВЁГўГ¬<");
 clean_row(col_bg+16,col_bg+24,row_bg,3);
 gotoxy(col_bg+16,row_bg);
 printf(">ЕЅГў¬ВҐ**<");
 gotoxy(80,25);
}
 
int button_cancel(int col_bg,int row_bg)
{
 clean_row(col_bg+16,col_bg+24,row_bg,4);
 gotoxy(col_bg+16,row_bg);
 printf(">ЕЅГў¬ВҐ**<");
 clean_row(col_bg,col_bg+13,row_bg,3);
 gotoxy(col_bg,row_bg);
 printf(">&#143;®¤ГўВўВҐГ*¤ВЁГўГ¬<");
 gotoxy(80,25);
}
 
void window_edit()
{
 draw_window(24,50,10,16,2);
 gotoxy(31,11);
 printf("&#144;ВҐ¤*ВЄГўВЁГ*®Вў**ВЁВҐ");
 gotoxy(29,12);
 printf("‚ВўВҐ¤ВЁГўВҐ ВЈ®¤ §*ВЇВЁГЎВЁ");
 clean_row(25,50,14,5);
 clean_row(25,38,15,3);
 gotoxy(25,15);
 printf(">&#143;®¤ГўВўВҐГ*¤ВЁГўГ¬<");
 gotoxy(42,15);
 clean_row(41,49,15,3);
 gotoxy(41,15);
 printf(">ЕЅГў¬ВҐ**<");
 gotoxy(80,25);
}
 
void window_filter()
{
 draw_window(25,55,10,16,2);
 gotoxy(37,11);
 printf("‚ë¡®Г*ВЄ*");
 gotoxy(33,12);
 printf("‚ВўВҐ¤ВЁГўВҐ ГЎГўГ***ГЈ,");
 gotoxy(27,13);
 printf("ВЇ® ВЄ®Гў®Г*®© ВЇГ*®ВўВҐГЎГўВЁ ¢ë¡®Г*ВЄГЈ");
 clean_row(26,55,14,5);
 clean_row(28,40,15,3);
 gotoxy(28,15);
 printf(">&#143;®¤ГўВўВҐГ*¤ВЁГўГ¬<");
 gotoxy(44,15);
 clean_row(44,52,15,3);
 gotoxy(44,15);
 printf(">ЕЅГў¬ВҐ**<");
 gotoxy(80,25);
}
 
void window_find()
{
 draw_window(25,55,10,16,2);
 gotoxy(37,11);
 printf("&#143;®ВЁГЎВЄ");
 clean_row(26,55,14,5);
 clean_row(28,40,15,3);
 gotoxy(28,15);
 printf(">&#143;®¤ГўВўВҐГ*¤ВЁГўГ¬<");
 gotoxy(44,15);
 clean_row(44,52,15,3);
 gotoxy(44,15);
 printf(">ЕЅГў¬ВҐ**<");
 gotoxy(80,25);
}
 
void sort_info()
{
 int key,min,max,sort,rmax;
 long k,n;
 struct EV{
       int date;
       char count_own[20];
       char count_win[20];
       char artist[50];
       char sound[50];
      } EV;
 FILE *f_dat,*f_tmp;
 
 f_dat=fopen("data.dat","rt");
 f_tmp=fopen("temp.dat","wt");
 fseek(f_dat,0,SEEK_SET);
 k=ftell(f_dat);
 fseek(f_dat,0,SEEK_END);
 n=ftell(f_dat);
 if(k!=n)
 {
 fseek(f_dat,0,SEEK_END);
 k=ftell(f_dat)-2;
 fseek(f_dat,0,SEEK_SET);
 fscanf(f_dat,"%d",&EV.date);
 fseek(f_dat,1,SEEK_CUR);
 fgets(EV.count_own,15,f_dat);
 fseek(f_dat,1,SEEK_CUR);
 fgets(EV.count_win,15,f_dat);
 fseek(f_dat,1,SEEK_CUR);
 fgets(EV.artist,40,f_dat);
 fseek(f_dat,1,SEEK_CUR);
 fgets(EV.sound,40,f_dat);
 fseek(f_dat,1,SEEK_CUR);
 max=EV.date; min=EV.date;
 fseek(f_dat,0,SEEK_SET);
 do
   {
    fscanf(f_dat,"%d",&EV.date);
    fseek(f_dat,1,SEEK_CUR);
    fgets(EV.count_own,17,f_dat);
    fseek(f_dat,1,SEEK_CUR);
    fgets(EV.count_win,17,f_dat);
    fseek(f_dat,1,SEEK_CUR);
    fgets(EV.artist,40,f_dat);
    fseek(f_dat,1,SEEK_CUR);
    fgets(EV.sound,40,f_dat);
    fseek(f_dat,1,SEEK_CUR);
    if(EV.date>max) max=EV.date; rmax=max;
    if(EV.date<min) min=EV.date;
   }while((n=ftell(f_dat))!=k);
 do
  {
   fseek(f_dat,0,SEEK_SET);
   do
    {
     fscanf(f_dat,"%d",&EV.date);
     fseek(f_dat,1,SEEK_CUR);
     fgets(EV.count_own,17,f_dat);
     fseek(f_dat,1,SEEK_CUR);
     fgets(EV.count_win,17,f_dat);
     fseek(f_dat,1,SEEK_CUR);
     fgets(EV.artist,40,f_dat);
     fseek(f_dat,1,SEEK_CUR);
     fgets(EV.sound,40,f_dat);
     fseek(f_dat,1,SEEK_CUR);
     if(EV.date==max)
      {
       fprintf(f_tmp,"%d %s %s %s %s \n",EV.date,EV.count_own,EV.count_win,EV.artist,EV.sound);
       break;
      }
    }while(ftell(f_dat)!=k);
   fseek(f_dat,0,SEEK_SET);
   sort=min;
   do
    {
     fscanf(f_dat,"%d",&EV.date);
     fseek(f_dat,1,SEEK_CUR);
     fgets(EV.count_own,17,f_dat);
     fseek(f_dat,1,SEEK_CUR);
     fgets(EV.count_win,17,f_dat);
     fseek(f_dat,1,SEEK_CUR);
     fgets(EV.artist,40,f_dat);
     fseek(f_dat,1,SEEK_CUR);
     fgets(EV.sound,40,f_dat);
     fseek(f_dat,1,SEEK_CUR);
     if(EV.date<max && EV.date>sort) sort=EV.date;
    }while(ftell(f_dat)!=k);
    max=sort;
   }while(sort!=min);
  if(min!=rmax)
   {
    fseek(f_dat,0,SEEK_SET);
    do
     {
      fscanf(f_dat,"%d",&EV.date);
      fseek(f_dat,1,SEEK_CUR);
      fgets(EV.count_own,17,f_dat);
      fseek(f_dat,1,SEEK_CUR);
      fgets(EV.count_win,17,f_dat);
      fseek(f_dat,1,SEEK_CUR);
      fgets(EV.artist,40,f_dat);
      fseek(f_dat,1,SEEK_CUR);
      fgets(EV.sound,40,f_dat);
      fseek(f_dat,1,SEEK_CUR);
      if(EV.date==min)
       {
    fprintf(f_tmp,"%d %s %s %s %s \n",EV.date,EV.count_own,EV.count_win,EV.artist,EV.sound);
    break;
       }
     }while(ftell(f_dat)!=k);
 fclose(f_dat);
 fclose(f_tmp);
  }
 }
}
 
void add()
{
 FILE *f_add;
 struct EV
     {
      int date;
      char count_own[20];
      char count_win[20];
      char artist[50];
      char sound[50];
     } EV;
 f_add=fopen("add.dat","wt");
 gotoxy(20,12);
 scanf("%d",&EV.date);
 if(EV.date<0)
  EV.date=EV.date*(-1);
 if(EV.date>9999)
  while(EV.date>9999){EV.date=EV.date/10;}
 fgets(EV.artist,40,stdin);
 gotoxy(20,14);
  fgets(EV.count_own,18,stdin);
 gotoxy(20,16);
  fgets(EV.count_win,18,stdin);
 gotoxy(20,18);
  fgets(EV.artist,40,stdin);
 gotoxy(20,20);
  fgets(EV.sound,40,stdin);
 fprintf(f_add,"%d %s %s %s %s \n",EV.date,EV.count_own,EV.count_win,EV.artist,EV.sound);
 fclose(f_add);
}
 
int button(int col_bg,int row_bg)
{
 int n1,rikey;
 button_ok(col_bg,row_bg);
 clean_row(1,80,25,3);
 n1=0;
 do
  {
   if((rikey=getch())==0) rikey=getch();
   switch(rikey)
    {
     case 77: n1++; if(n1>1) n1=0;break;
     case 75: n1--; if(n1<0) n1=1;break;
    }
   if(n1==0) {button_ok(col_bg,row_bg);}
   if(n1==1) {button_cancel(col_bg,row_bg);}
  }while(rikey!=13);
  return(n1);
}
 
void copy_add()
{
 long k;
 struct EV
      {
       int date;
       char count_own[20];
       char count_win[20];
       char artist[50];
       char sound[50];
      }EV;
 FILE *f_add,*f_dat;
 f_add=fopen("add.dat","rt");
 f_dat=fopen("data.dat","at");
 fseek(f_add,0,SEEK_SET);
 fscanf(f_add,"%d",&EV.date);
 fseek(f_add,1,SEEK_CUR);
 fgets(EV.count_own,17,f_add);
 fseek(f_add,1,SEEK_CUR);
 fgets(EV.count_win,17,f_add);
 fseek(f_add,1,SEEK_CUR);
 fgets(EV.artist,40,f_add);
 fseek(f_add,1,SEEK_CUR);
 fgets(EV.sound,40,f_add);
 fseek(f_add,1,SEEK_CUR);
 fprintf(f_dat,"%d %s %s %s %s \n",EV.date,EV.count_own,EV.count_win,EV.artist,EV.sound);
 fclose(f_add);
 fclose(f_dat);
}
 
void delete1(int del)
{
long k,n;
 struct EV
      {
       int date;
       char count_own[20];
       char count_win[20];
       char artist[50];
       char sound[50];
      }EV;
 FILE *f_tmp,*f_dat;
 f_dat=fopen("data.dat","wt");
 f_tmp=fopen("temp.dat","rt");
 fseek(f_tmp,0,SEEK_END);
 k=ftell(f_tmp)-2;
 fseek(f_tmp,0,SEEK_SET);
 do
  {
   fscanf(f_tmp,"%d",&EV.date);
   fseek(f_tmp,1,SEEK_CUR);
   fgets(EV.count_own,17,f_tmp);
   fseek(f_tmp,1,SEEK_CUR);
   fgets(EV.count_win,17,f_tmp);
   fseek(f_tmp,1,SEEK_CUR);
   fgets(EV.artist,40,f_tmp);
   fseek(f_tmp,1,SEEK_CUR);
   fgets(EV.sound,40,f_tmp);
   fseek(f_tmp,1,SEEK_CUR);
   if(EV.date!=del)
    {
     fprintf(f_dat,"%d %s %s %s %s \n",EV.date,EV.count_own,EV.count_win,EV.artist,EV.sound);
    }
  }while((n=ftell(f_tmp))!=k);
 fclose(f_tmp);
 fclose(f_dat);
}
 
int print_to_screen(int nscr,int fil)
{
 int i,j,n,scr=0;
 long k,m;
 char s1[50]={""},s2[50]={""};
 char *q,*w;
 struct EV
      {
       int date;
       char count_own[20];
       char count_win[20];
       char artist[50];
       char sound[50];
      }EV;
 FILE *fp;
 q=s1;
 w=s2;
 if(fil==0)
  fp=fopen("temp.dat","rt");
 else
  fp=fopen("find.dat","rt");
 fseek(fp,0,SEEK_SET);
  k=ftell(fp);
 fseek(fp,0,SEEK_END);
  n=ftell(fp);
 if(k!=n)
 {
  fseek(fp,0,SEEK_END);
  k=ftell(fp)-2;
  fseek(fp,0,SEEK_SET);
  for(scr=0;scr<=nscr;scr++)
 {
  work_table();
  do
   {
    for(j=7;j!=23;j=j+2)
     {
      fscanf(fp,"%d",&EV.date);
      fseek(fp,1,SEEK_CUR);
      fgets(EV.count_own,17,fp);
      fseek(fp,1,SEEK_CUR);
      fgets(EV.count_win,17,fp);
      fseek(fp,1,SEEK_CUR);
      fgets(EV.artist,40,fp);
      fseek(fp,1,SEEK_CUR);
      fgets(EV.sound,40,fp);
      fseek(fp,1,SEEK_CUR);
      m=ftell(fp);
      gotoxy(2,j);
      printf("%d",EV.date);
      gotoxy(7,j);
      puts(EV.count_own);
      gotoxy(22,j);
      puts(EV.count_win);
      gotoxy(36,j);
      q=s1;
      if(strlen(EV.artist)>20)
       {
    strcpy(s1,EV.artist);
    for(i=0;i<=20;i++)
     {if(*q==' ') n=i; q++;}
    q=s1;
    for(i=0;i<=n;i++)
     {printf("%c",*q); q++;}
    gotoxy(36,j+1);
    for(i=n+1;i<=strlen(EV.artist);i++)
     {printf("%c",*q); q++;}
       }
      else
       puts(EV.artist);
      gotoxy(56,j);
      w=s2;
      if(strlen(EV.sound)>20)
       {
    strcpy(s2,EV.sound);
    for(i=0;i<=20;i++)
     {if(*w==' ') n=i; w++;}
    w=s2;
    for(i=0;i<=n;i++)
     {printf("%c",*w); w++;}
    gotoxy(56,j+1);
    for(i=n+1;i<=strlen(EV.sound);i++)
     {printf("%c",*w); w++;}
       }
      else
       puts(EV.sound);
      if(m==k) break;
     }
    if(j==23) break;
   }while((ftell(fp))!=k);
   if(m==k) break;
  }
 gotoxy(80,25);
 fclose(fp);
 }
 if(scr<nscr)
  return(scr);
 else
  return(nscr);
}
 
int find(int m,int n)
{
 char s1[50]={""},find[50]={""};
 long k;
 struct EV
      {
       int date;
       char count_own[20];
       char count_win[20];
       char artist[50];
       char sound[50];
      }EV,SEV;
 FILE *f_tmp,*f_srch;
 f_tmp=fopen("temp.dat","rt");
 f_srch=fopen("find.dat","wt");
 gotoxy(26,14);
 fgets(s1,44,stdin);
 strncpy(find,s1,strlen(s1)-1);
 fseek(f_tmp,0,SEEK_END);
 k=ftell(f_tmp)-2;
 fseek(f_tmp,0,SEEK_SET);
 do
  {
   fscanf(f_tmp,"%d",&EV.date);
   fseek(f_tmp,1,SEEK_CUR);
   fgets(EV.count_own,17,f_tmp);
   fseek(f_tmp,1,SEEK_CUR);
   fgets(EV.count_win,17,f_tmp);
   fseek(f_tmp,1,SEEK_CUR);
   fgets(EV.artist,44,f_tmp);
   fseek(f_tmp,1,SEEK_CUR);
   fgets(EV.sound,44,f_tmp);
   fseek(f_tmp,1,SEEK_CUR);
   strcpy(SEV.count_own,EV.count_own);
   strcpy(SEV.count_win,EV.count_win);
   strcpy(SEV.artist,EV.artist);
   strcpy(SEV.sound,EV.sound);
   strlwr(SEV.count_own);
   strlwr(SEV.count_win);
   strlwr(SEV.artist);
   strlwr(SEV.sound);
   strlwr(find);
   if(m==2&&n==0)
    {
     if(strstr(SEV.count_own,find)!=NULL)
      fprintf(f_srch,"%d %s %s %s %s \n",EV.date,EV.count_own,EV.count_win,EV.artist,EV.sound);
    }
   if(m==2&&n==1)
    {
     if(strstr(SEV.count_win,find)!=NULL)
      fprintf(f_srch,"%d %s %s %s %s \n",EV.date,EV.count_own,EV.count_win,EV.artist,EV.sound);
    }
   if(m==3&&n==0)
    {
 
     if(strstr(SEV.artist,find)!=NULL)
      fprintf(f_srch,"%d %s %s %s %s \n",EV.date,EV.count_own,EV.count_win,EV.artist,EV.sound);
    }
   if(m==3&&n==1)
    {
     if(strstr(SEV.sound,find)!=NULL)
     fprintf(f_srch,"%d %s %s %s %s \n",EV.date,EV.count_own,EV.count_win,EV.artist,EV.sound);
    }
  }while(ftell(f_tmp)!=k);
 fclose(f_tmp);
 fclose(f_srch);
}

Решение задачи: «Не работает программа (ошибка undefined reference)»

textual
Листинг программы
Êîìï³ëÿòîð: Default compiler
Building Makefile: "G:\Êóðñîâà\Kurs\Makefile.win"
Âèêîíàííÿ  make...
make.exe -f "G:\Êóðñîâà\Kurs\Makefile.win" all
gcc.exe kurs_edit.o  -o "kurs_edit.exe" -L"C:/Dev-Cpp/lib" -lbgi -lgdi32 -lcomdlg32 -luuid -loleaut32 -lole32  

C:/Dev-Cpp/lib/libbgi.a(winbgi.o)(.text+0xbc7):winbgi.cxx: undefined reference to `operator new(unsigned int)'
C:/Dev-Cpp/lib/libbgi.a(winbgi.o)(.text+0xbd2):winbgi.cxx: undefined reference to `std::string::_Rep::_S_empty_rep_storage'
C:/Dev-Cpp/lib/libbgi.a(winbgi.o)(.text+0x167f):winbgi.cxx: undefined reference to `std::string::assign(char const*, unsigned int)'
C:/Dev-Cpp/lib/libbgi.a(winbgi.o)(.text+0x1b5e):winbgi.cxx: undefined reference to `std::string::_Rep::_S_empty_rep_storage'
C:/Dev-Cpp/lib/libbgi.a(winbgi.o)(.text+0x1b72):winbgi.cxx: undefined reference to `operator delete(void*)'
C:/Dev-Cpp/lib/libbgi.a(winbgi.o)(.text+0x1dcc):winbgi.cxx: undefined reference to `__gnu_cxx::__exchange_and_add(int volatile*, int)'
C:/Dev-Cpp/lib/libbgi.a(winbgi.o)(.text+0x1de0):winbgi.cxx: undefined reference to `std::string::_Rep::_M_destroy(std::allocator<char> const&)'
C:/Dev-Cpp/lib/libbgi.a(winbgi.o)(.text+0x1fac):winbgi.cxx: undefined reference to `std::ios_base::Init::Init()'
C:/Dev-Cpp/lib/libbgi.a(winbgi.o)(.text+0x1fc8):winbgi.cxx: undefined reference to `std::ios_base::Init::~Init()'
C:/Dev-Cpp/lib/libbgi.a(winbgi.o)(.text$_ZNSt11_Deque_baseIcSaIcEE16_M_destroy_nodesEPPcS3_[std::_Deque_base<char, std::allocator<char> >::_M_destroy_nodes(char**, char**)]+0x19):winbgi.cxx: undefined reference to `operator delete(void*)'
C:/Dev-Cpp/lib/libbgi.a(winbgi.o)(.text$_ZNSt5dequeIcSaIcEE16_M_pop_front_auxEv[std::deque<char, std::allocator<char> >::_M_pop_front_aux()]+0x11):winbgi.cxx: undefined reference to `operator delete(void*)'
C:/Dev-Cpp/lib/libbgi.a(winbgi.o)(.text$_ZNSt11_Deque_baseI9tagPOINTSSaIS0_EE16_M_destroy_nodesEPPS0_S4_[std::_Deque_base<tagPOINTS, std::allocator<tagPOINTS> >::_M_destroy_nodes(tagPOINTS**, tagPOINTS**)]+0x19):winbgi.cxx: undefined reference to `operator delete(void*)'
C:/Dev-Cpp/lib/libbgi.a(winbgi.o)(.text$_ZNSt11_Deque_baseIcSaIcEE15_M_create_nodesEPPcS3_[std::_Deque_base<char, std::allocator<char> >::_M_create_nodes(char**, char**)]+0x18):winbgi.cxx: undefined reference to `operator new(unsigned int)'
C:/Dev-Cpp/lib/libbgi.a(winbgi.o)(.text$_ZNSt11_Deque_baseIcSaIcEE17_M_initialize_mapEj[std::_Deque_base<char, std::allocator<char> >::_M_initialize_map(unsigned int)]+0x39):winbgi.cxx: undefined reference to `operator new(unsigned int)'
C:/Dev-Cpp/lib/libbgi.a(winbgi.o)(.text$_ZNSt11_Deque_baseIcSaIcEED2Ev[std::_Deque_base<char, std::allocator<char> >::~_Deque_base()]+0x35):winbgi.cxx: undefined reference to `operator delete(void*)'
C:/Dev-Cpp/lib/libbgi.a(winbgi.o)(.text$_ZNSt11_Deque_baseI9tagPOINTSSaIS0_EE15_M_create_nodesEPPS0_S4_[std::_Deque_base<tagPOINTS, std::allocator<tagPOINTS> >::_M_create_nodes(tagPOINTS**, tagPOINTS**)]+0x18):winbgi.cxx: undefined reference to `operator new(unsigned int)'
C:/Dev-Cpp/lib/libbgi.a(winbgi.o)(.text$_ZNSt11_Deque_baseI9tagPOINTSSaIS0_EE17_M_initialize_mapEj[std::_Deque_base<tagPOINTS, std::allocator<tagPOINTS> >::_M_initialize_map(unsigned int)]+0x39):winbgi.cxx: undefined reference to `operator new(unsigned int)'
C:/Dev-Cpp/lib/libbgi.a(winbgi.o)(.text$_ZNSt11_Deque_baseI9tagPOINTSSaIS0_EED2Ev[std::_Deque_base<tagPOINTS, std::allocator<tagPOINTS> >::~_Deque_base()]+0x35):winbgi.cxx: undefined reference to `operator delete(void*)'
C:/Dev-Cpp/lib/libbgi.a(winbgi.o)(.text$_ZNSt6vectorIP6HWND__SaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1_[std::vector<HWND__*, std::allocator<HWND__*> >::_M_insert_aux(__gnu_cxx::__normal_iterator<HWND__**, std::vector<HWND__*, std::allocator<HWND__*> > >, HWND__* const&)]+0x81):winbgi.cxx: undefined reference to `operator new(unsigned int)'
C:/Dev-Cpp/lib/libbgi.a(winbgi.o)(.text$_ZNSt6vectorIP6HWND__SaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1_[std::vector<HWND__*, std::allocator<HWND__*> >::_M_insert_aux(__gnu_cxx::__normal_iterator<HWND__**, std::vector<HWND__*, std::allocator<HWND__*> > >, HWND__* const&)]+0xfb):winbgi.cxx: undefined reference to `operator delete(void*)'
C:/Dev-Cpp/lib/libbgi.a(winthread.o)(.text+0x522):winthread.cxx: undefined reference to `std::string::_Rep::_S_empty_rep_storage'
C:/Dev-Cpp/lib/libbgi.a(winthread.o)(.text+0x52f):winthread.cxx: undefined reference to `operator delete(void*)'
C:/Dev-Cpp/lib/libbgi.a(winthread.o)(.text+0x57e):winthread.cxx: undefined reference to `__gnu_cxx::__exchange_and_add(int volatile*, int)'
C:/Dev-Cpp/lib/libbgi.a(winthread.o)(.text+0x58e):winthread.cxx: undefined reference to `std::string::_Rep::_M_destroy(std::allocator<char> const&)'
C:/Dev-Cpp/lib/libbgi.a(winthread.o)(.text+0x259b):winthread.cxx: undefined reference to `std::ios_base::Init::Init()'
C:/Dev-Cpp/lib/libbgi.a(winthread.o)(.text+0x25ba):winthread.cxx: undefined reference to `std::ios_base::Init::~Init()'
C:/Dev-Cpp/lib/libbgi.a(winthread.o)(.text+0x25cf):winthread.cxx: undefined reference to `operator delete(void*)'
C:/Dev-Cpp/lib/libbgi.a(winthread.o)(.text$_ZNSt5dequeI9tagPOINTSSaIS0_EE5clearEv[std::deque<tagPOINTS, std::allocator<tagPOINTS> >::clear()]+0x3b):winthread.cxx: undefined reference to `operator delete(void*)'
C:/Dev-Cpp/lib/libbgi.a(winthread.o)(.text$_ZNSt5dequeI9tagPOINTSSaIS0_EE5clearEv[std::deque<tagPOINTS, std::allocator<tagPOINTS> >::clear()]+0x76):winthread.cxx: undefined reference to `operator delete(void*)'
C:/Dev-Cpp/lib/libbgi.a(winthread.o)(.text$_ZNSt5dequeIcSaIcEE17_M_reallocate_mapEjb[std::deque<char, std::allocator<char> >::_M_reallocate_map(unsigned int, bool)]+0x94):winthread.cxx: undefined reference to `operator new(unsigned int)'
C:/Dev-Cpp/lib/libbgi.a(winthread.o)(.text$_ZNSt5dequeIcSaIcEE17_M_reallocate_mapEjb[std::deque<char, std::allocator<char> >::_M_reallocate_map(unsigned int, bool)]+0xd6):winthread.cxx: undefined reference to `operator delete(void*)'
C:/Dev-Cpp/lib/libbgi.a(winthread.o)(.text$_ZNSt5dequeIcSaIcEE16_M_push_back_auxERKc[std::deque<char, std::allocator<char> >::_M_push_back_aux(char const&)]+0x32):winthread.cxx: undefined reference to `operator new(unsigned int)'
C:/Dev-Cpp/lib/libbgi.a(winthread.o)(.text$_ZNSt5dequeI9tagPOINTSSaIS0_EE17_M_reallocate_mapEjb[std::deque<tagPOINTS, std::allocator<tagPOINTS> >::_M_reallocate_map(unsigned int, bool)]+0x94):winthread.cxx: undefined reference to `operator new(unsigned int)'
C:/Dev-Cpp/lib/libbgi.a(winthread.o)(.text$_ZNSt5dequeI9tagPOINTSSaIS0_EE17_M_reallocate_mapEjb[std::deque<tagPOINTS, std::allocator<tagPOINTS> >::_M_reallocate_map(unsigned int, bool)]+0xd6):winthread.cxx: undefined reference to `operator delete(void*)'
C:/Dev-Cpp/lib/libbgi.a(winthread.o)(.text$_ZNSt5dequeI9tagPOINTSSaIS0_EE24_M_new_elements_at_frontEj[std::deque<tagPOINTS, std::allocator<tagPOINTS> >::_M_new_elements_at_front(unsigned int)]+0x48):winthread.cxx: undefined reference to `operator new(unsigned int)'
C:/Dev-Cpp/lib/libbgi.a(winthread.o)(.text$_ZNSt5dequeI9tagPOINTSSaIS0_EE23_M_new_elements_at_backEj[std::deque<tagPOINTS, std::allocator<tagPOINTS> >::_M_new_elements_at_back(unsigned int)]+0x43):winthread.cxx: undefined reference to `operator new(unsigned int)'
C:/Dev-Cpp/lib/libbgi.a(winthread.o)(.text$_ZNSt5dequeI9tagPOINTSSaIS0_EE16_M_push_back_auxERKS0_[std::deque<tagPOINTS, std::allocator<tagPOINTS> >::_M_push_back_aux(tagPOINTS const&)]+0x35):winthread.cxx: undefined reference to `operator new(unsigned int)'
C:/Dev-Cpp/lib/libbgi.a(misc.o)(.text+0x100c):misc.cxx: undefined reference to `std::ios_base::Init::Init()'
C:/Dev-Cpp/lib/libbgi.a(misc.o)(.text+0x1028):misc.cxx: undefined reference to `std::ios_base::Init::~Init()'
C:/Dev-Cpp/lib/libbgi.a(drawing.o)(.text+0x3adc):drawing.cxx: undefined reference to `std::ios_base::Init::Init()'
C:/Dev-Cpp/lib/libbgi.a(drawing.o)(.text+0x3af8):drawing.cxx: undefined reference to `std::ios_base::Init::~Init()'
collect2: ld returned 1 exit status

make.exe: *** [kurs_edit.exe] Error 1

Âèêîíàííÿ çàâåðøåíî

Объяснение кода листинга программы

Ваша проблема кажется связанной с использованием operator new и operator delete в вашем коде. Эти операторы используются для выделения и освобождения памяти, и компилятор не может найти определения функций operator new и operator delete. В C++, вы должны использовать std::malloc и std::free для выделения и освобождения памяти соответственно, если вы не используете стандартный контейнер C++ или другие библиотеки, которые предоставляют эти функции. Ваша ошибка также может быть связана с порядком, в котором компилятор связывает объекты. Возможно, некоторые функции вызываются до того, как они определены, что приводит к ошибке undefined reference. Я бы рекомендовал пересмотреть ваш код и убедиться, что все функции определены до их вызова, и что вы используете std::malloc и std::free для выделения и освобождения памяти. Если вы используете стандартные контейнеры C++, такие как std::vector, std::deque или std::string, эти функции будут автоматически вызывать operator new и operator delete при необходимости.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4 из 5
Похожие ответы