当我在编译时静态链接库时,如何更改 C ncurses 的 ESCDELAY 值?

How can I change the ESCDELAY value for C ncurses when I'm statically linking the libraries at compile time?

我有一个使用 C ncurses 库编写的程序。在这个程序中,靠近顶部我有这一行:

ESCDELAY = 0;

此行用于消除在 ncurses 中按 escape 键时出现的延迟。

我可以正常编译这个程序:

gcc program.c -o program -lncurses

我安装并设置了正确的静态链接库,但是当我尝试静态编译我的程序时:

gcc -static program.c -o program -lncurses

我收到这个错误:

/usr/bin/ld: /usr/local/lib/libncurses.a(lib_getch.o):(.data+0x0): multiple definition of `ESCDELAY'; /tmp/ccMFQAm6.o:(.bss+0x0): first defined here
collect2: error: ld returned 1 exit status

当我从我的代码中删除 ESCDELAY = 0; 行并像以前一样静态编译它时,它编译并工作得很好。

那么,如何在更改 ESCDELAY 值的同时静态编译我的代码?

男士set_escdelay

The ESCDELAY and TABSIZE global variables are modified by some applications. To modify them in any configuration, use the set_escdelay or set_tabsize functions. Other global variables are not modifiable.

你应该更换

ESCDELAY = 0;

来自

set_escdelay(0);