使用 ncurses 时对“stdscr”的未定义引用

新手上路,请多包涵

我正在尝试在 Ubuntu 11.10 中编译我的代码并遇到这些错误等等。到目前为止,通过谷歌搜索我认为这是一个链接错误。具体来说,有人建议确保您拥有正确的标题并链接 -lncurses 库。我已经这样做了。我仍然收到此错误。我还读到可能我应该安装 libncurses,但我已经安装了它。

 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

我的错误:

 /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'

原文由 Fari 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.1k
1 个回答

我也遇到了同样的问题。

我需要使用“strftime”C 函数。似乎“ncurses”库包含它,在这种情况下可以很容易地下载并安装在现代 Linux/Unix 发行版上(我使用的是 FreeBSD 13.1)。

然后我必须在 C/C++ 文件中包含“curses.h”,并且在编译时我还必须使用 ncurses 标志:“-lncurses”

这是我用于编译的命令:

 clang++ -v -g strftime.cpp -o strftime -lncurses

我需要在 C++ 中使用“strftime”,为我工作。

原文由 Max Dax 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题