stdscr函数vs _stdscr函数 - 有什么区别?

时间:2017-04-29 22:51:46

标签: c compilation linker

我不是C大师。我正在尝试编译其他人的C代码,并收到以下错误:

Undefined symbols for architecture x86_64:
   "_stdscr", referenced from:
      _new_line in libsms.a(cstatus.o)
      _message in libsms.a(cstatus.o)

“stdscr”方法来自我认为“ncurses.h”和“curses.h”。代码似乎期待“ncurses.h”。

“ncurses.h”文件似乎定义了“stdscr”(名称中没有下划线),而链接器则抱怨符号“_stdscr”(注意下划线)。

我的编译器标志中有-lncurses,我认为该位正在运行。

如果我更改C源代码以将变量称为“_stdscr”,我会得到

error: ‘_stdscr’ undeclared

代替。

有人可以

  1. 解释这个下划线的来源以及它在做什么?
  2. 帮助我如何知道确定是否正确找到并引用了ncurses.h标头?
  3. 指出我正确的方向进行进一步调查?

0 个答案:

没有答案