Nowe posty

Autor Wątek: Wątki - symulacja sterowania skrzyżowaniem  (Przeczytany 8208 razy)

ZipoKing

  • Gość
Wątki - symulacja sterowania skrzyżowaniem
« Odpowiedź #15 dnia: 2012-01-31, 13:15:27 »
Musisz dodać do GCC (-lncurses jako ostatnia opcja) informację, aby połączył plik wynikowy z biblioteką ncurses. Poprzez dyrektywę #include dodajesz jedynie pliki nagłówkowe, nie zaś plik .so.

Popatrz na poniższy przykład. Dopiero kompilacja z -lncurses nie powoduje błędów, a ldd ładnie pokazuje że program korzysta z ncurses :)
$ gcc kod_zrodlowy.c 
/tmp/ccyOB8Lm.o: In function `main':
kod_zrodlowy.c:(.text+0x5): undefined reference to `initscr'
kod_zrodlowy.c:(.text+0x14): undefined reference to `printw'
kod_zrodlowy.c:(.text+0x1b): undefined reference to `stdscr'
kod_zrodlowy.c:(.text+0x23): undefined reference to `wrefresh'
kod_zrodlowy.c:(.text+0x2a): undefined reference to `stdscr'
kod_zrodlowy.c:(.text+0x32): undefined reference to `wgetch'
kod_zrodlowy.c:(.text+0x37): undefined reference to `endwin'
collect2: ld returned 1 exit status

$ gcc kod_zrodlowy.c -lncurses
$ ldd ./a.out
        linux-vdso.so.1 =>  (0x00007fff9f75d000)
        libncurses.so.5 => /lib/libncurses.so.5 (0x00007f5c977f3000)
        libc.so.6 => /lib/libc.so.6 (0x00007f5c97470000)
        libdl.so.2 => /lib/libdl.so.2 (0x00007f5c9726b000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f5c97a5e000)