Tôi đang chạy Ubuntu 12.04 và tôi hiện đang làm việc trên một dự án liên quan đến C, OpenGL, một phương pháp ấm trà và đầu vào.gcc/usr/bin/ld: lỗi: không thể tìm thấy -lncurses
Sự cố bắt đầu khi tôi quyết định có các phím mũi tên làm đầu vào. Tôi đã kiểm tra để xem các mã khóa cho các phím mũi tên nhưng tất cả các mũi tên trả về 0. Tôi đã tìm cách để làm việc này và tôi đã tìm thấy conio.h. Thật không may, nó là một tiêu đề DOS cũ mà không có sẵn cho Linux. Sau đó, tôi tìm thấy một thay thế được gọi là ncurses.
Sau khi cài đặt các thư viện cần thiết, bằng cách làm theo hướng dẫn xây dựng chặt chẽ, tôi #included curses.h trong nguồn main.c của tôi. Khi lần đầu tiên tôi đã cố gắng để biên dịch sử dụng gcc, tôi có các lỗi sau đây:
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'
Tôi tìm thấy một sửa chữa bằng cách thêm -lncurses đến makefile như vậy:
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
Nhưng tôi đã được chào đón bởi một lỗi khác :
/usr/bin/ld: error: cannot find -lncurses
Cũng như các lỗi trước đó.
Tôi đã dành 2 ngày cuối cùng để tìm kiếm cả diễn đàn Ubuntu và StackOverFlow. Bất kỳ trợ giúp sẽ được đánh giá cao.
P.S. Tôi không biết nếu điều này là quan trọng nhưng khi tôi cố gắng chạy/usr/bin/ld tôi nhận được lỗi này:
ld: fatal error: no input files
'apt-get install gói libncurses5-dev'? – trojanfoe
tại sao những nhận xét này phải quá nhỏ -_- Tôi không thấy nhận xét của bạn trước đây nhưng đó là bản sửa lỗi. Dunno tại sao nhưng có vẻ như tôi đã cài đặt một số phiên bản không chính thức mà trình biên dịch không nhận ra. Cảm ơn mọi người! – Yrrej10