curses不是linux里默认的C函数库

   今天在调试一个贪吃蛇程序时,出现如下错误:

[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



转载于:https://www.cnblogs.com/hsyBlogs/p/4934604.html

你可能感兴趣的:(curses不是linux里默认的C函数库)