Ubuntu下VS Code编译ncurses.h报undefined reference to `initscr'问题咨询
报错产生原因
- 该
undefined reference类报错属于链接阶段错误,和ncurses.h头文件是否正确引入无关,本质是链接器无法找到initscr等ncurses库函数的具体实现。 - 终端可正常编译的原因:终端执行编译指令时你手动添加了
-lncurses链接参数,例如执行的是类似gcc demo.c -o demo -lncurses的指令,该参数会告知gcc在链接阶段主动关联ncurses库,匹配到对应函数的实现。 - VS Code编译失败的原因:VS Code内置的C/C++扩展默认编译配置(对应项目
.vscode目录下的tasks.json文件的args字段)没有添加-lncurses参数,调用gcc编译时仅传入了源代码文件参数,未告知链接器需要关联ncurses库,因此无法找到对应函数实现触发报错。
内容的提问来源于stack exchange,提问作者ricardo
相关产品推荐
相关产品推荐

