У меня была похожая проблема, и я нашел решение, которое мне помогло, но немного отличалось от других ответов, опубликованных здесь. Я пытался использовать библиотеку панелей с проклятиями, и моя команда компиляции была:
$ gcc -o hello hello.c -lncurses -lpanel
Когда я прочитал другие ответы, я был озадачен, потому что у меня было , включая флаг -lncurses, но он все еще не компилировался, и с ошибками, аналогичными тем, которые вы получали:
$ gcc -o hello hello.c -lncurses -lpanel
/usr/lib/gcc/i686-linux-gnu/4.7/../../../../lib/libpanel.a(p_new.o): In function `new_panel':
p_new.c:(.text+0x18): undefined reference to `_nc_panelhook'
Я наконец нашел свой ответ в tldp :
"Чтобы использовать функции библиотеки панелей, вы должны включить файл panel.h и связать программу с библиотекой панелей, после чего необходимо добавить флаг -lpanel вместе с -lncurses в этом порядке."
Итак, похоже, что порядок важен при использовании флагов компиляции! Я попытался переключить порядок:
gcc -o hello hello.c -lpanel -lncurses
Это позволило успешно компилироваться. Я знаю, что у вас уже есть свой ответ, поэтому я надеюсь, что это кому-нибудь поможет.