Undefined reference to `stdscr' while using ncurses

前端 未结 6 988
被撕碎了的回忆
被撕碎了的回忆 2020-12-02 01:58

I am trying to compile my code in Ubuntu 11.10 and getting these errors and more.So far by googling it I think it is a linking error. Specifically, there have been suggestio

相关标签:
6条回答
  • 2020-12-02 02:10

    I faced with similar problem, when use Qt timer and ncurses: timeout macros ruin out Qt code =) Solution was "#undef timeout" after #include <ncurses.h> to prevent macros from working. And if in some cases You will need ncurses timeout, you can run wtimeout(stdscr,delay) directly.

    0 讨论(0)
  • 2020-12-02 02:16

    I know you've moved on, but for future reference: when I encountered the same problem, it was due to the placement of the -l argument. Try:

    skygrid: skygrid.o commServer.o pose.o robot.o
        $(LINK) -o $@ $^ $(LDFLAGS)
    

    For more information, see the gcc manual: http://gcc.gnu.org/onlinedocs/gcc/Link-Options.html

    and this thread on SO: Placement of `-l' option in gcc

    0 讨论(0)
  • 2020-12-02 02:16

    I came up with the same problem when building cscope 15.8.

    After ./configure, I first get error saying "ncurses.h" not found. It's because there is no libncurses-dev installed on my os.

    After installing libcurses-dev, I run make directly. Then got dozens of the "undefined reference to" error.

    After rebuild from start again, these errors were gone.

    ./configure

    make

    0 讨论(0)
  • 2020-12-02 02:20

    I was having this problem with an ncurses program on Centos 6.2. It turns out that ncurses is sometimes split into two libraries, ncurses and tinfo. In my case, stdscr exists in libtinfo, not in libncurses, so adding -ltinfo to the link line, after -lncurses, solved the problem.

    0 讨论(0)
  • 2020-12-02 02:26

    Since the error messages refer to specific lines in your skygrid.cpp source file, they're not linker errors.

    You probably need to add

    #include <curses.h>
    

    to the top of that source file.

    0 讨论(0)
  • 2020-12-02 02:35

    user1246043,

    I've been having a similar problem. Basically, I can't compile wiht g++ 4.5 or g++ 4.6, so I installed g++ 4.4 and used that. This specifically solved my problem with linking to ncursesw.

    # Makefile:
    CXX=g++-4.4                                                                  
    CXXLIBS=-lncursesw                                                           
    CXXFLAGS=-Wall
    # Other stuff omitted
    
    0 讨论(0)
提交回复
热议问题