Estoy tratando de compilar mi código en Ubuntu 11.10 y obtener estos errores y más. Por lo tanto, buscándolo en Google creo que es un error de enlace. Específicamente, ha habido sugerencias para asegurarse de tener los encabezados correctos y vincular la biblioteca -lncurses. Ya he hecho eso. Todavía estoy recibiendo este error. También leí que podría ser que debería instalar el libncurses, pero ya lo tengo instalado.referencia indefinida a `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
Mis Errores:
/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'
La convención es utilizar CPP para el preprocesador, CPPFLAGS como banderas para el preprocesador, CXX para el compilador de C++, y CXXFLAGS para banderas para CXX. Asignar CPP como un compilador de C++ destruirá las reglas implícitas de make. –
Gracias a todos los que intentaron ayudar. De hecho, ya no estoy trabajando con este código y tampoco tengo acceso a él. Entonces, no probé nada más que lo que sugirió Keith Thompson y eso no me había funcionado. Para otras personas que puedan encontrarse con el mismo problema, intente con las otras respuestas y márquelas útiles si es así. – Fari
Estaba teniendo el mismo problema y la solución era usar -l al final: 'gcc -o hello hello.c -lncurses' – jcubic