Używam Ubuntu 12.04 i obecnie pracuję nad projektem obejmującym C, OpenGL, czajniczek i metody wprowadzania.gcc/usr/bin/ld: błąd: nie można znaleźć -lncurses
Problem zaczął się, gdy zdecydowałem się użyć klawiszy strzałek jako danych wejściowych. Sprawdziłem, aby zobaczyć kluczowe kody klawiszy strzałek, ale wszystkie strzałki zwracają 0. Sprawdziłem, jak uruchomić to i znalazłem conio.h. Niestety jest to stary nagłówek DOS, który nie jest dostępny dla systemu Linux. Potem znalazłem substytut o nazwie ncurses.
Po zainstalowaniu niezbędnych bibliotek, dokładnie postępując zgodnie z instrukcjami kompilacji, I #included curses.h w moim źródle main.c. Kiedy po raz pierwszy próbował skompilować za pomocą gcc, mam następujące błędy:
main.o:main.c:function _Key: error: undefined reference to 'stdscr'
main.o:main.c:function _Key: error: undefined reference to 'wgetch'
main.o:main.c:function _Key: error: undefined reference to 'stdscr'
main.o:main.c:function _Key: error: undefined reference to 'wgetch'
znalazłem poprawkę dodając -lncurses do makefile tak:
SOURCES=main.c
main: main.o
gcc -lm -lGL -lGLU -lglut -lncurses main.o -o main
main.o: main.c
gcc -lm -lGL -lGLU -lglut -c main.c
Ale byłem witany przez innego błędu :
/usr/bin/ld: error: cannot find -lncurses
Tak jak poprzednie błędy.
Ostatnie 2 dni spędziłem na przeszukiwaniu zarówno forów Ubuntu, jak i StackOverFlow. Każda pomoc będzie doceniona.
P.S. Nie wiem, czy to ważne, ale gdy próbuję uruchomić/usr/bin/ld otrzymuję ten błąd:
ld: fatal error: no input files
'apt-get install libncurses5-dev'? – trojanfoe
dlaczego te komentarze muszą być tak małe -_- Nie widziałem Twojego komentarza wcześniej, ale to była poprawka. Nie wiem dlaczego, ale wydaje mi się, że zainstalowałem coś w rodzaju nieoficjalnej wersji, której kompilator nie rozpoznał. Dziękuję wszystkim! – Yrrej10