curses不是linux裡預設的C函式庫

2022-08-11 15:15:16 字數 1265 閱讀 6431

今天在除錯乙個貪吃蛇程式時,出現如下錯誤:

[hsy@localhost c++]$ g++ snack.cpp -o snack

/tmp/cccuz3jm.o:在函式『playgame(int, int)』中:

snack.cpp:(.text+0xce):對『erase』未定義的引用

snack.cpp:(.text+0xed):對『mvprintw』未定義的引用

snack.cpp:(.text+0x140):對『mvprintw』未定義的引用

snack.cpp:(.text+0x166):對『move』未定義的引用

snack.cpp:(.text+0x16b):對『refresh』未定義的引用

/tmp/cccuz3jm.o:在函式『main』中:

snack.cpp:(.text+0x2ca):對『initscr』未定義的引用

snack.cpp:(.text+0x2cf):對『cbreak』未定義的引用

snack.cpp:(.text+0x2d6):對『stdscr』未定義的引用

snack.cpp:(.text+0x2e3):對『keypad』未定義的引用

snack.cpp:(.text+0x2e8):對『refresh』未定義的引用

snack.cpp:(.text+0x2ef):對『stdscr』未定義的引用

snack.cpp:(.text+0x2fb):對『stdscr』未定義的引用

snack.cpp:(.text+0x314):對『stdscr』未定義的引用

snack.cpp:(.text+0x320):對『stdscr』未定義的引用

snack.cpp:(.text+0x35f):對『move』未定義的引用

snack.cpp:(.text+0x370):對『halfdelay』未定義的引用

snack.cpp:(.text+0x48a):對『stdscr』未定義的引用

snack.cpp:(.text+0x492):對『wgetch』未定義的引用

snack.cpp:(.text+0x4a9):對『endwin』未定義的引用

collect2: 錯誤:ld 返回 1

在網上找了很久後終於發現了問題所在。因為 curses 不是linux裡預設的c函式庫,所以導致編譯時未找到函式定義

正確的方法是:

[hsy@localhost c++]$ g++ snack.cpp -o snack -l curses

[hsy@localhost c++]$ ./snack

你缺的不是物件,缺的是物件儲存

說起物件,真的是扎到程式設計師心窩窩裡了 萬箭穿心 別想了,找物件是不可能的 物件儲存倒是可以考慮一下 所謂物件儲存,就是物件導向 檔案的雲儲存。在物件儲存出現之前,儲存主要依靠以下三種方式 傳統儲存方式 1 硬碟 無論是dvr dvs後掛硬碟還是伺服器後面直接連線擴充套件櫃的方式,都是採用硬碟進行...

DBA最缺的不是技術

從去年離開上海開始,就一直思考怎麼做乙個好的dba,自已身上最缺什麼?到現在稍有點頭緒了,雖然沒有完整的答案,但也從自已過去的經歷中想到了幾點一直欠缺的地方,沒有一處是具體的技術問題.同技術相比,這些非技術的因素的確對如何做乙個好的dba更重要.一直以來我都不懂rac系統,也不會配置stream和r...

Linux中的curses程式設計

記得在選修作業系統課程的時候,有一次不小心翻到教材後面,看到裡面介紹了乙個編寫動畫遊戲的函式庫,叫做curses。感覺很好玩,就跟著上面學了一段時間,還編寫了乙個小遊戲。curses是乙個函式庫,包含許多庫函式,專門用來進行unix終端環境下的螢幕介面處理及i o處理。但是在一般linux環境中不能...