簡體   English   中英

當我在編譯時靜態鏈接庫時,如何更改 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 中按下轉義鍵時出現的延遲。

我可以像這樣正常編譯這個程序:

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

某些應用程序修改了ESCDELAYTABSIZE全局變量。 要在任何配置中修改它們,請使用set_escdelayset_tabsize函數。 其他全局變量不可修改。

你應該更換

ESCDELAY = 0;

經過

set_escdelay(0); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM