[英]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 中按下轉義鍵時出現的延遲。
我可以像這樣正常編譯這個程序:
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 值的同時靜態編譯我的代碼?
對於 man set_escdelay
:
某些應用程序修改了
ESCDELAY
和TABSIZE
全局變量。 要在任何配置中修改它們,請使用set_escdelay
或set_tabsize
函數。 其他全局變量不可修改。
你應該更換
ESCDELAY = 0;
經過
set_escdelay(0);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.