Skocz do zawartości
Saboteur

Kompilacja Gcc

Rekomendowane odpowiedzi

dlaczego przy kompilacji jakiegokolwiek programu za pomocą gcc wyskakuje brak pliku z bibliotekami np. curses.h, stdlib.h . pthread.h. , chyba wszystkich jakie są w programach

Uzywam cdlinuxa malego uruchomionego przez boot cd z ramdyskami.

a może jednak to błąd kompilacji ale nie sądze:

 

#include <curses.h>

#include <stdio.h>

#include <stdlib.h>

#define DLUGOSC 100

#define LEWO 1

#define PRAWO 2

#define GORA 3

#define DOL 4

 

 

 

int x[DLUGOSC];

int y[DLUGOSC];

int kierunek=PRAWO;

int dlugosc=5;

 

int main(int argc, char*argv[])

    {

    WINDOW *win,*win2;

    int maxWidth,maxHeight;

    int i,exit=1;

    char ch;

   

    for(i=0; i<DLUGOSC; i++)

{

x=1;

y=1;

}

   

initscr() ;

noecho() ;

getmaxyx(stdscr,maxHeight,maxWidth) ;

win=newwin(maxHeight/2,maxWidth,0,0) ;

win2=newwin(maxHeight/2,maxWidth,maxHeight/2+1,0) ;

nodelay(win,TRUE) ;

box(win,0,0) ;

box(win2,0,0) ;

scrollok(win2,TRUE) ;

while(exit)

    {

    //pobierz znaczek

    ch=wgetch(win) ;

    switch(ch)

    {

    case 'q':

exit=0 ;

break ;

   

case '8':

kierunek=GORA ;

break ;

 

case '2':

kierunek=DOL ;

break ;

 

case '4':

kierunek=LEWO ;

break ;

 

case '6':

kierunek=PRAWO ;

break ;

 

    }

   

    //skasuj ogon

    wmove(win,y[dlugosc-1],x[dlugosc-1]) ;

    wprintw(win," ") ;

    //przesun weza

    for(i=dlugosc-2;i>=0;i--)

    {

    x[i+1]=x;

    y[i+1]=y;

    }

    //przesun glowe

   

    switch(kierunek)

    {   

    case LEWO:

x[0]--;

break;

    case PRAWO:

x[0]++;

break;

    case GORA:

y[0]--;

break;

    case DOL:

y[0]++;

break;

   

    }

//wprintw(win2,"pozycja glowy: (%d,%d), pozycja ogona: (%d,%d)\n",x[0],y[0]

 

 

if(x[0]<=0 || x[0]>=maxWidth-1 || y[0]<=0 || y[0]>=maxHeight/2-1){

  wprintw(win,"        KONIEC        ");

  exit = 0;

}

 

for(i=0; i<dlugosc; i++)

    {   

    wmove(win,y,x) ;

    wprintw(win,"*") ;

    }

wrefresh(win) ;

sleep(1) ;   

   

}

 

endwin() ;

 

}   

   

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

A masz te pliki w systemie?

sprawdz czy leza np. w /usr/include/

z ncurses jest tez nieraz taki myk ze pliki nie siedza bezposrednio

w /usr/include tylko w /usr/include/ncurses, czyli w programie

powinno byc:

 

#include <ncurses/curses.h>

 

No ale najlatwiej bedzie Ci po prostu sprawdzic czy masz te pliki

w systemie. Mozliwe, ze jako plytka bootcd nie ma pakietow -devel

z plikami naglowkowymi.

pozdr.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

sprawdz jaki blad wyskakuje, jesli nie m oze znalezc naglowkow to proponuje:

# gcc-config -L

# gcc-config [nr]

 

gdzie -l wypisze dostepne wersja, a ta druga linijka umozliwi wybor kompilator defaultowego - moze pomoc

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie


×
×
  • Dodaj nową pozycję...