Tôi đang cố gắng biên dịch mã của mình trong Ubuntu 11.10 và nhận được các lỗi này và hơn thế nữa.Đến nay bằng cách googling nó tôi nghĩ rằng đó là một lỗi liên kết. Cụ thể, đã có các đề xuất để đảm bảo bạn có các tiêu đề phù hợp và liên kết thư viện -lncurses. Tôi đã làm điều đó rồi. Tôi vẫn nhận được lỗi này. Tôi cũng đọc có thể là tôi nên cài đặt libncurses, nhưng tôi đã có nó được cài đặt.không xác định tham chiếu đến `stdscr '
My MakeFile:
CPP = g++
CPPFLAGS = -c -Wall -g
LINK = g++
LDFLAGS_LINUX = -lpthread -lncurses
LDFLAGS = $(LDFLAGS_LINUX)
RM = rm
.SUFFIXES:
.SUFFIXES: .o .cpp
.cpp.o:
$(CPP) $(CPPFLAGS) $*.cpp -o $(SRC_DIR)$*.o
all: skygrid
skygrid: skygrid.o commServer.o pose.o robot.o
$(LINK) $(LDFLAGS) -o [email protected] $^
clean:
$(RM) -rf *.o skygrid
skygrid.o: skygrid.cpp definitions.h commServer.h pose.h robot.h
commServer.o: commServer.cpp commServer.h
pose.o: pose.cpp pose.h
robot.o: robot.cpp robot.h pose.h
lỗi của tôi:
/home/fari/Desktop/FarahSkygrid/skygrid/src/skygrid.cpp:1094: undefined reference to `stdscr'
/home/fari/Desktop/FarahSkygrid/skygrid/src/skygrid.cpp:1094: undefined reference to `stdscr'
/home/fari/Desktop/FarahSkygrid/skygrid/src/skygrid.cpp:1094: undefined reference to `stdscr'
/home/fari/Desktop/FarahSkygrid/skygrid/src/skygrid.cpp:1094: undefined reference to `stdscr'
/home/fari/Desktop/FarahSkygrid/skygrid/src/skygrid.cpp:1104: undefined reference to `werase'
/home/fari/Desktop/FarahSkygrid/skygrid/src/skygrid.cpp:1106: undefined reference to `wprintw'
/home/fari/Desktop/FarahSkygrid/skygrid/src/skygrid.cpp:1107: undefined reference to `wprintw'
/home/fari/Desktop/FarahSkygrid/skygrid/src/skygrid.cpp:1109: undefined reference to `wprintw'
/home/fari/Desktop/FarahSkygrid/skygrid/src/skygrid.cpp:1111: undefined reference to `stdscr'
/home/fari/Desktop/FarahSkygrid/skygrid/src/skygrid.cpp:1111: undefined reference to `wgetch'
/home/fari/Desktop/FarahSkygrid/skygrid/src/skygrid.cpp:1116: undefined reference to `wtouchln'
Quy ước là sử dụng CPP dùng cho preprocessor, CPPFLAGS như cờ dùng cho preprocessor, CXX cho C++, và CXXFLAGS cho cờ để CXX. Gán CPP như một trình biên dịch C++ sẽ làm xáo trộn các quy tắc ngầm định của chúng ta. –
Cảm ơn tất cả những ai đã cố gắng giúp đỡ. Tôi thực sự không còn làm việc với mã này nữa và tôi cũng không có quyền truy cập vào nó. Vì vậy, tôi đã không thử bất cứ điều gì khác hơn những gì Keith Thompson đã đề xuất và điều đó đã không làm việc cho tôi. Đối với những người khác có thể đang chạy vào cùng một vấn đề, hãy thử các câu trả lời khác và đánh dấu chúng hữu ích nếu chúng là như vậy. – Fari
Tôi đã gặp vấn đề tương tự và cách khắc phục là sử dụng lệnh -l ở cuối: 'gcc -o hello hello.c -lncurses' – jcubic