Nowe posty

xx Problem ze sterownikami. (5)
2024-04-13, 21:25:16
xx Instalacja xfce4 (2)
2024-04-13, 16:20:17
xx Serie kompilacji bez instalacji dla “emerge” w Gentoo (2)
2024-04-08, 18:40:04
xx Plasma 6 w Neonie ssie trochę mniej ... (17)
2024-04-05, 10:03:46
xx Problem z Linux Lite po instalacji (3)
2024-04-03, 14:23:40
xx Jak właczyć num locka przy starcie systemu debian 12? (12)
2024-04-02, 17:43:54
xx Brak dźwieku w systemie. (5)
2024-04-02, 16:13:41
xx Dystrybucja pod HP Omen (7)
2024-03-29, 11:33:05
xx [Poradnik] Wyszukiwanie Sterowników (2)
2024-03-27, 21:08:23
xx Ile pingwinów? (1)
2024-03-27, 08:59:24

Autor Wątek: Wątki - symulacja sterowania skrzyżowaniem  (Przeczytany 8206 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)