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

问题描述 投票:0回答:1

我有一个使用C ncurses库编写的程序。在此程序中,靠近顶部的位置显示以下行:

ESCDELAY = 0;

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

我通常可以像这样编译该程序:

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值的同时静态编译我的代码?

c compilation static-libraries static-linking ncurses
1个回答
0
投票

对于男人set_escdelay

set_escdelayESCDELAY全局变量被某些应用程序修改。要在任何配置中修改它们,请使用TABSIZEset_escdelay函数。其他全局变量不可修改。

您应该替换

set_tabsize

作者

ESCDELAY = 0;
© www.soinside.com 2019 - 2024. All rights reserved.