Why I am getting undefined reference to sleep error?
12,361
Your code seems to come from Windows operating system. On Linux, the function Sleep
does not exist (Sleep
is a function from Windows API!). Try sleep
(from <unistd.h>
) instead. As alk said, keep in mind the arguments of Sleep
and sleep
are different:
Sleep
takes a time in milliseconds;sleep
takes a time in seconds.
Likewise, the getch
function and the cls
shell command don't work with GNU/Linux.
Comments
-
rishiag almost 2 years
Code:
#include <stdio.h> #include <stdlib.h> #include <unistd.h> struct subscriber { char phonenumber[20]; char name[50]; float amount; } s; void addrecords(); void listrecords(); void modifyrecords(); void deleterecords(); void searchrecords(); void payment(); char get; int main() { int password; int phonenumber; char choice; system("cls"); printf ("\n\n\n\n\n\n\n\n\n**********************************************************************"); printf("\n\t\t---WELCOME TO THE TELECOM BILLING MANAGEMENT SYSTEM---"); printf("\n\t\t****************************************************************"); Sleep(2000); getch(); system("cls"); while (1) { system("cls"); printf("\n enter\n A : for adding new records.\n L : for list of records"); printf("\n M : for modifying records.\n P : for payment"); printf("\n S : for searching records."); printf("\n D : for deleting records.\n E : for exit\n"); choice = getche(); choice = toupper(choice); switch (choice) { case 'P': payment(); break; case 'A': addrecords(); break; case 'L': listrecords(); break; case 'M': modifyrecords(); break; case 'S': searchrecords(); break; case 'D': deleterecords(); break; case 'E': system("cls"); printf("\n\n\t\t\t\tTHANK YOU"); printf("\n\n\n\n\n:\n\tFOR USING OUR SERVICE"); Sleep(2000); exit(0); break; default: system("cls"); printf("Incorrect Input"); printf("\nAny key to continue"); getch(); } } }
Error:
proj.c:(.text+0x53): undefined reference to `Sleep' proj.c:(.text+0x5d): undefined reference to `getch' proj.c:(.text+0xbb): undefined reference to `getche' proj.c:(.text+0x17f): undefined reference to `Sleep' proj.c:(.text+0x1c1): undefined reference to `getch' /tmp/cc4UYi0H.o: In function `addrecords': proj.c:(.text+0x244): undefined reference to `getch' proj.c:(.text+0x340): undefined reference to `getche' /tmp/cc4UYi0H.o: In function `listrecords': proj.c:(.text+0x44c): undefined reference to `getch' /tmp/cc4UYi0H.o: In function `deleterecords': proj.c:(.text+0x5b2): undefined reference to `getch' proj.c:(.text+0x632): undefined reference to `getch' /tmp/cc4UYi0H.o: In function `searchrecords': proj.c:(.text+0x791): undefined reference to `getch' /tmp/cc4UYi0H.o: In function `payment': proj.c:(.text+0xb1f): undefined reference to `getch' collect2: ld returned 1 exit status
I tried the solution given here ( Undefined reference to "sleep" but I did include <unistd.h> ) but it's still not working. I am using gcc on Ubuntu 12.04.