当我在编译时静态链接库时,如何更改 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);
我有一个使用 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
andTABSIZE
global variables are modified by some applications. To modify them in any configuration, use theset_escdelay
orset_tabsize
functions. Other global variables are not modifiable.
你应该更换
ESCDELAY = 0;
来自
set_escdelay(0);