Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
stdscr函数与stdscr函数的比较——什么';有什么区别?_C_Compilation_Linker - Fatal编程技术网

stdscr函数与stdscr函数的比较——什么';有什么区别?

stdscr函数与stdscr函数的比较——什么';有什么区别?,c,compilation,linker,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

我不是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”(名称中没有下划线),而链接器却抱怨符号“\u stdscr”(注意下划线)


我的编译器标志中有-lncurse,我认为该位正在工作

如果我将C源代码更改为将变量称为“\u stdscr”,那么

相反

能找个人吗

  • 解释下划线的来源和作用
  • 请帮助我了解如何确保正确找到并引用ncurses.h标头
  • 给我指出进一步调查的正确方向

  • “我的编译器标志中有-lncurse,我认为该位正在工作。”你有什么证据可以证明这一点?什么是libsms?文字信息或音乐声音合成?一些编译器会自动在外部符号名称中添加下划线。你应该把它当作是
    stdscr
    。然后您需要知道在哪里定义了
    stdscr
    ;它应该由
    ncurses
    库定义(并由
    ncurses.h
    标题声明)。您需要链接到
    ncurses
    库-将
    -lncurses
    添加到链接命令行。@rici嗯,主要是缺少错误消息。对于我指定了一个库(使用-lncurses)但找不到的情况,是否有办法强制链接器提供特定的错误消息?
    error: ‘_stdscr’ undeclared