undefined reference to `stdscr'

Ich versuche zu kompilieren mein code in Ubuntu 11.10 und immer diese Fehler und vieles mehr.Bisher durch googeln ich denke, es ist ein linking-Fehler. Speziell, es gab Vorschläge, um sicherzustellen, dass Sie die richtigen Header und der link -lncurses-Bibliothek. Ich habe das schon getan. Ich bin noch immer dieser Fehler. Ich habe auch gelesen, dass kann ich installieren, sollte die libncurses, aber ich habe bereits installiert.

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 $@ $^

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

Mein Fehler:

/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'
  • Die Konvention ist die Verwendung von CPP-für den Präprozessor, CPPFLAGS als Kennzeichen für den Präprozessor, CXX für C++ - compiler, und CXXFLAGS für flags CXX. Zuweisen von CPP als C++ compiler wird mangle machen die impliziten Regeln.
  • Danke für alle die versucht haben zu helfen. Ich bin eigentlich nicht mehr funktioniert mit diesem code, und ich habe keinen Zugang zu Ihr. So, ich habe nicht versucht, etwas anderes als das, was Keith Thompson vorgeschlagen, und das war nicht für mich gearbeitet. Für andere die vielleicht mit den gleichen Problemen versuchen Sie bitte die anderen Antworten und markieren Sie nützlich, wenn Sie so sind.
  • Ich hatte das gleiche problem und der fix war mit -l am Ende: gcc -o hello hello.c -lncurses
InformationsquelleAutor Fari | 2012-03-02
Schreibe einen Kommentar