在 Mac OS X 上编译 ncurses 应用程序时出错

joh*_*ohe 5 c curses macos compilation ncurses

我试图在 Mac OS X 10.6.8 上编译基于 ncurses 的应用程序,但出现此错误。

Undefined symbols for architecture x86_64:
  "_initscr", referenced from:
      _main in ccf8K8YG.o
  "_printw", referenced from:
      _main in ccf8K8YG.o
  "_stdscr", referenced from:
      _main in ccf8K8YG.o
  "_wrefresh", referenced from:
      _main in ccf8K8YG.o
  "_wgetch", referenced from:
      _main in ccf8K8YG.o
  "_endwin", referenced from:
      _main in ccf8K8YG.o
Run Code Online (Sandbox Code Playgroud)

可能是什么问题呢 ?

jen*_*nki 4

我很确定这是因为您在编译时没有包含该ncurses库。

尝试添加:

-lncurses
Run Code Online (Sandbox Code Playgroud)

编译时。

例如(对于 C++):

g++ -o hello main.cpp -lncurses
Run Code Online (Sandbox Code Playgroud)

或者使用 gcc(对于 C):

gcc -o hello main.cpp -lncurses
Run Code Online (Sandbox Code Playgroud)

这个简短的命令将编译并执行:

gcc -o hello main.cpp -lncurses && ./hello
Run Code Online (Sandbox Code Playgroud)

这是我的问题,我希望这对某人有帮助。