在 Fedora 上短暂停留后,我最近回到了 Xubuntu 22.04。在Fedora下,我好像可以安装ncurses ok。然后我可以简单地编写代码并使用如下命令进行编译:
$gcc -lncurses main.c
现在,当我尝试这样做时,它给了我:
/usr/bin/ld: /tmp/cczC1PpK.o: in function `main':
main.c:(.text+0x9): undefined reference to `initscr'
/usr/bin/ld: main.c:(.text+0x1d): undefined reference to `printw'
/usr/bin/ld: main.c:(.text+0x24): undefined reference to `stdscr'
/usr/bin/ld: main.c:(.text+0x2c): undefined reference to `wgetch'
/usr/bin/ld: main.c:(.text+0x31): undefined reference to `endwin'
/usr/bin/ld: warning: creating DT_TEXTREL in a PIE
collect2: error: ld returned 1 exit status
我尝试使用以下方法安装:
sudo apt-get install libncurses5-dev libncursesw5-dev
sudo apt-get install ncurses-dev libncurses5-dev libncursesw5-dev
sudo apt-get install libncurses5 libncurses5:i386
sudo apt-get install libncurses5:i386
所有似乎都安装良好,没有错误或警告。
然而,我的代码根本无法识别 ncurses 函数。
代码如下:
#include <stdio.h>
#include <ncurses.h>
int main()
{
initscr();
printw("Hello World!");
getch();
endwin();
return 0;
}
它是如此简单,但它失败了。
有任何想法吗?
谢谢。