Sida 1 av 1

varning: inkompatibel implicit deklaration av inbyggd funktion

Postat: 25 dec 2007, 13:38
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

SV: varning: inkompatibel implicit deklaration av inbyggd funktion

Postat: 25 dec 2007, 13:47
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! :)

SV: varning: inkompatibel implicit deklaration av inbyggd funktion

Postat: 25 dec 2007, 16:10
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å.

SV: varning: inkompatibel implicit deklaration av inbyggd funktion

Postat: 25 dec 2007, 16:30
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å!