varning: inkompatibel implicit deklaration av inbyggd funktion

Här diskuteras programmering och utveckling
Användarvisningsbild
kenta
Inlägg: 105
Blev medlem: 22 nov 2006, 09:32
OS: Ubuntu
Utgåva: 18.04 Bionic Beaver LTS
Ort: Östersund

varning: inkompatibel implicit deklaration av inbyggd funktion

Inlägg av kenta »

Hej är det någon som kan förklara denna varning:

varning: inkompatibel implicit deklaration av inbyggd funktion

I de olika funktionerna så har jag markerat raderna med //här är det fel.

jag har fått detta medelande av gcc kompilatorn


gcc  -O2 -s lbp660.c -o lbp660
lbp660.c: I funktion "get_bitmap":
lbp660.c:162: varning: inkompatibel implicit deklaration av inbyggd funktion "memset"
lbp660.c: I funktion "errorexit":
lbp660.c:410: varning: inkompatibel implicit deklaration av inbyggd funktion "exit"
lbp660.c: I funktion "main":
lbp660.c:949: varning: inkompatibel implicit deklaration av inbyggd funktion "strcpy"
chmod +s lbp660
gcc  -O2 -s lbp460.c -o lbp460
chmod +s lbp460

Detta är dom utklippta funktionerna
*************************
unsigned char
get_bitmap () {
FILE *dbgf;
int i,k,tmp;
if (bmcnt==0) {
memset(bmbuf,0,800);  //här är det fel
//if (!feof(bitmapf)) {
if (linecnt<(bmheight-topskip)) {
if (bmwidth > 800) {
fread(bmbuf,1,800,bitmapf);
bitmap_seek(bmwidth-800);
}
else {
fread(bmbuf,1,bmwidth,bitmapf);
}
}
bmptr = bmbuf+leftskip/8;
bmcnt = LINE_SIZE;
linecnt++;
}
bmcnt--;
return *bmptr++;
}

**************************************

void INLINE errorexit() {
#ifdef DEBUG
  int* i = 0;
  (*i)++;
#endif
  unlink(gname);
  if (cbmf)
      fclose(cbmf);
  exit(1); //här är det fel
}
****************************************

int main(int argc, char** argv) {
int c,i;
int reset_flag=1;
int size;
int simulate=0;
int page=0;
int reset_only=0;
int reset=0;
int tfd;
int lbp460=0;

bitmapf = stdin;
while ((c = getopt(argc,argv,"Rrt:l:sf:c")) != -1) {
switch (c) {
case 'R': {
reset_only=1;
reset=1;
break;
}
case 'r': {
reset=1;
break;
}
case 'c': {
lbp460=1;
break;
}
case 't': {
sscanf(optarg,"%d",&topskip);
break;
}
case 'l': {
sscanf(optarg,"%d",&leftskip);
break;
}
case 's': {
simulate++;
break;
}
case 'f': {
bitmapf = fopen( optarg,"r" );
if (!bitmapf) {
fprintf(stderr,"File not found on unreadable\n");
errorexit();
}
}
}
}

  if (ioperm(DATA,3,1)) {
      fprintf(stderr,  "Sorry, you were not able to gain access to the ports\n");
      fprintf(stderr,  "You must be root to run this program\n");
      errorexit();
  }

if (lbp460) {
fprintf(stderr, "Running with LBP-460 page resolution (600x300).\n");
lines_by_page = LINES_BY_PAGE460;
}
else {
fprintf(stderr, "Running with LBP-660 page resolution (600x600).\n");
lines_by_page = LINES_BY_PAGE660;
}

//__cli(); /* ??? */

if ((reset && !simulate) || (lbp460)) {
reset_printer();
}

if (!reset_only) {
/* probe for already reseted printer */
/*if (!simulate) {
send_cmd(cmd_short_pause);
if (need_reset) {
need_reset=0;
reset_printer();
}
reset_on_timeout=0;
}*/

/* pages printing loop */
      struct timeval ltv;
      struct timeval ntv;
     
while (1) {
/* temporary file to store our results */
strcpy(gname,"/tmp/lbp660-XXXXXX"); //här är det fel
if ((tfd=mkstemp(gname))<0) {
fprintf(stderr,"Can't open a temporary file.\n");
errorexit();
}
cbmf = fdopen(tfd,"w+");
if (!compress_bitmap())
break;
if (!simulate) {
  if (page != 0) {
              gettimeofday(&ntv, NULL);
              usleep(PAGE_DELAY - ((ntv.tv_usec - ltv.tv_usec) + ((ntv.tv_sec - ltv.tv_sec)*1000000))); /* delay between pages */
            }
if (!print_page( page )) {
  fprintf(stderr, "Error, cannot print this page.\n");
  reset_printer();
  errorexit();
            }
            gettimeofday(&ltv, NULL);
}
fclose(cbmf);
next_page(page++);
unlink(gname);
}
}

  fclose(bitmapf);

  return 0;
}

Ps: försöker att för stå c++ koder, är nybörjare på programering
Användarvisningsbild
DrMegahertz
Inlägg: 296
Blev medlem: 06 maj 2006, 14:37
OS: Ubuntu
Utgåva: 14.04 Trusty Tahr LTS
Ort: Södra Dalarna

SV: varning: inkompatibel implicit deklaration av inbyggd funktion

Inlägg av DrMegahertz »

Det där är nog snarare C-kod än C++, men hur som helst, det verkar som om du inte inkluderat de nödvändiga headerfilerna som krävs för att få använda vissa funktioner.

Prova att inkludera stdlib.h och string.h och försök sedan kompilera igen! :)
BildAre you shpongled? Bild
Användarvisningsbild
kenta
Inlägg: 105
Blev medlem: 22 nov 2006, 09:32
OS: Ubuntu
Utgåva: 18.04 Bionic Beaver LTS
Ort: Östersund

SV: varning: inkompatibel implicit deklaration av inbyggd funktion

Inlägg av kenta »

Tack ska du ha det, gick bra, fick inget, felmedelande. Du har rätt det är en C kod.
gcc sa inget.

Tack för hjälpen

Mvh kenta

Ps:

Livet är ett helvete, men det är förbannat kul också.
Användarvisningsbild
Grön Göling
Städsegrön
Inlägg: 3599
Blev medlem: 21 apr 2007, 19:20
OS: Ubuntu
Utgåva: 22.04 Jammy Jellyfish LTS
Ort: 08

SV: varning: inkompatibel implicit deklaration av inbyggd funktion

Inlägg av Grön Göling »

En omedelbar reaktion från någon som "inte spikar kompjutter" är:

Vad i helvitte är det för rotvälska (rubriken)? >:(

Man efterlyser vettiga meddelande på svenska, som även icke-flerspråkiga skall kunna förstå. Herrar och damer utvecklare och programmerare bör kunna undvika dylika meddelande och uttrycka sig på ett korrekt men förståeligt sätt ändå!
En gång i tiden var även jag ung och kunde och visste allt bäst. Numera vet jag bättre
I'm not anti-social; I'm just not user friendly.
ursprungligen medlem sedan 20061018
Skriv svar

Återgå till "Programmering och webbdesign"