The menu library uses the curses libraries, and a curses initialization routine such as initscr must be called before using any of these functions. To use the menu library, link with the options -lmenu -lcurses.
curses Routine Name | Manual Page Name |
current_item | mitem_current(3X) |
free_item | mitem_new(3X) |
free_menu | menu_new(3X) |
item_count | menu_items(3X) |
item_description | mitem_name(3X) |
item_index | mitem_current(3X) |
item_init | menu_hook(3X) |
item_name | mitem_name(3X) |
item_opts | mitem_opts(3X) |
item_opts_off | mitem_opts(3X) |
item_opts_on | mitem_opts(3X) |
item_term | menu_hook(3X) |
item_userptr | mitem_userptr(3X) |
item_value | mitem_value(3X) |
item_visible | mitem_visible(3X) |
menu_back | menu_attributes(3X) |
menu_driver | menu_driver(3X) |
menu_fore | menu_attributes(3X) |
menu_format | menu_format(3X) |
menu_grey | menu_attributes(3X) |
menu_init | menu_hook(3X) |
menu_items | menu_items(3X) |
menu_mark | menu_mark(3X) |
menu_opts | menu_opts(3X) |
menu_opts_off | menu_opts(3X) |
menu_opts_on | menu_opts(3X) |
menu_pad | menu_attributes(3X) |
menu_pattern | menu_pattern(3X) |
menu_request_by_name | menu_requestname(3X) |
menu_request_name | menu_requestname(3X) |
menu_spacing | menu_spacing(3X) |
menu_sub | menu_win(3X) |
menu_term | menu_hook(3X) |
menu_userptr | menu_userptr(3X) |
menu_win | menu_win(3X) |
new_item | mitem_new(3X) |
new_menu | menu_new(3X) |
pos_menu_cursor | menu_cursor(3X) |
post_menu | menu_post(3X) |
scale_menu | menu_win(3X) |
set_current_item | mitem_current(3X) |
set_item_init | menu_hook(3X) |
set_item_opts | mitem_opts(3X) |
set_item_term | menu_hook(3X) |
set_item_userptr | mitem_userptr(3X) |
set_item_value | mitem_value(3X) |
set_menu_back | menu_attributes(3X) |
set_menu_fore | menu_attributes(3X) |
set_menu_format | menu_format(3X) |
set_menu_grey | menu_attributes(3X) |
set_menu_init | menu_hook(3X) |
set_menu_items | menu_items(3X) |
set_menu_mark | menu_mark(3X) |
set_menu_opts | mitem_opts(3X) |
set_menu_pad | menu_attributes(3X) |
set_menu_pattern | menu_pattern(3X) |
set_menu_spacing | menu_spacing(3X) |
set_menu_sub | menu_win(3X) |
set_menu_term | menu_hook(3X) |
set_menu_userptr | menu_userptr(3X) |
set_menu_win | menu_win(3X) |
set_top_row | mitem_current(3X) |
top_row | mitem_current(3X) |
unpost_menu | menu_post(3X) |
In your library list, libmenu.a should be before libncurses.a; that is, you should say ``-lmenu -lncurses'', not the other way around (which would give a link-error when using static libraries).
The menu facility was documented in SVr4.2 in Character User Interface Programming (UNIX SVR4.2).
It is not part of X/Open Curses.
Aside from ncurses, there are few implementations:
.IP • 4
systems based on SVr4 source code, e.g., Solaris.
.IP • 4
NetBSD curses.
This describes ncurses version 6.1 (patch 20180923).