我有一个使用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值的同时静态编译我的代码?
对于男人set_escdelay
:
set_escdelay
和ESCDELAY
全局变量被某些应用程序修改。要在任何配置中修改它们,请使用TABSIZE
或set_escdelay
函数。其他全局变量不可修改。
您应该替换
set_tabsize
作者
ESCDELAY = 0;