stdscr函数与stdscr函数的比较——什么';有什么区别?
我不是C大师。我正在尝试编译其他人的C代码,但出现以下错误: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
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”,那么 相反 能找个人吗
“我的编译器标志中有-lncurse,我认为该位正在工作。”你有什么证据可以证明这一点?什么是libsms?文字信息或音乐声音合成?一些编译器会自动在外部符号名称中添加下划线。你应该把它当作是
stdscr
。然后您需要知道在哪里定义了stdscr
;它应该由ncurses
库定义(并由ncurses.h
标题声明)。您需要链接到ncurses
库-将-lncurses
添加到链接命令行。@rici嗯,主要是缺少错误消息。对于我指定了一个库(使用-lncurses)但找不到的情况,是否有办法强制链接器提供特定的错误消息?
error: ‘_stdscr’ undeclared