Пример:
debian:~$make
make all-recursive
make[1]: Entering directory `/root/avant-window-navigator-0.1.1'
Making all in src
make[2]: Entering directory `/root/avant-window-navigator-0.1.1/src'
if gcc -DHAVE_CONFIG_H -I. -I. -I.. -DORBIT2=1 -pthread -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/libwnck-1.0 -I/usr/include/gconf/2 -I/usr/include/orbit-2.0 -DDATADIR=\""/usr/local/share"\" -DGNOMELOCALEDIR=\""/usr/local/share/locale"\" -g -O2 -Wall -pedantic -std=c99 -fno-strict-aliasing -fmessage-length=0 -D_FORTIFY_SOURCE=2 -MT main.o -MD -MP -MF ".deps/main.Tpo" -c -o main.o main.c; \
then mv -f ".deps/main.Tpo" ".deps/main.Po"; else rm -f ".deps/main.Tpo"; exit 1; fi
main.c:21:21: error: gtk/gtk.h: No such file or directory
.........................................................
Както се вижда ни липсва gtk/gtk.h, но как да разберем кой пакет ни трябва? Точно тук се намесва apt-file
1. Инсталираме apt-file
- Код за потвърждение: Избери целия код
debian:~$su
debian:~#apt-get install apt-file
2. Подновяваме информацията
- Код за потвърждение: Избери целия код
debian:~#apt-file update
Забележка: При всяка промяна на /etc/apt/sources.list трябва да подновяваме и информацията на apt-file
3. Търсиме нужният пакет
- Код за потвърждение: Избери целия код
debian:~#apt-file search gtk/gtk.h
Резултата от горната команда е
- Код за потвърждение: Избери целия код
debian:~#apt-file search gtk/gtk.h
libgfcui-dev: usr/include/gfc-2.0/gfc/gtk/gtk.hh
libgtk+2.0-directfb-dev: usr/include/directfb/gtk-2.0/gtk/gtk.h
libgtk1.2-dev: usr/include/gtk-1.2/gtk/gtk.h
libgtk2.0-dev: usr/include/gtk-2.0/gtk/gtk.h
libgtk2.0-doc: usr/share/doc/libgtk2.0-doc/gtk/gtk.html
debian:~#
Ако не знаеме точно кой пакет ни трябва ...инсталираме всичко или един по един. В нашият случай пакета, който ни трябва е libgtk2.0-dev.
4. Инсталираме нужният пакет
- Код за потвърждение: Избери целия код
debian:~#apt-get install libgtk2.0-dev
5. Продължаваме с make
debian:~#make
make all-recursive
make[1]: Entering directory `/root/avant-window-navigator-0.1.1'
Making all in src
make[2]: Entering directory `/root/avant-window-navigator-0.1.1/src'
if gcc -DHAVE_CONFIG_H -I. -I. -I.. -DORBIT2=1 -pthread -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/libwnck-1.0 -I/usr/include/gconf/2 -I/usr/include/orbit-2.0 -DDATADIR=\""/usr/local/share"\" -DGNOMELOCALEDIR=\""/usr/local/share/locale"\" -g -O2 -Wall -pedantic -std=c99 -fno-strict-aliasing -fmessage-length=0 -D_FORTIFY_SOURCE=2 -MT main.o -MD -MP -MF ".deps/main.Tpo" -c -o main.o main.c; \
then mv -f ".deps/main.Tpo" ".deps/main.Po"; else rm -f ".deps/main.Tpo"; exit 1; fi
In file included from /usr/include/gtk-2.0/gtk/gtk.h:170,
from main.c:21:
/usr/include/gtk-2.0/gtk/gtktextbuffer.h:52: warning: ISO C restricts enumerator values to range of âintâ
/usr/include/gtk-2.0/gtk/gtktextbuffer.h:53: warning: ISO C restricts enumerator values to range of âintâ
/usr/include/gtk-2.0/gtk/gtktextbuffer.h:55: warning: ISO C restricts enumerator values to range of âintâ
In file included from main.c:28:
awn-app.h:30:29: error: libwnck/libwnck.h: No such file or directory
In file included from main.c:28:
.........................................................................
След това по описаният начин търсиме и този пакет и всеки следващ, който евентуално няма да имаме, т.е.
- Код за потвърждение: Избери целия код
debian:~#apt-file search libwnck/libwnck.h
libwnck-dev: usr/include/libwnck-1.0/libwnck/libwnck.h
debian:~#apt-get install libwnck-dev
Източник:Основен