such file or directoryaloumundo.c: In function main:aloumundo.c:6: error: GtkWidget undeclared (first use in this function)aloumundo.c:6: error: (Each undeclared identifier is reported only oncealoumundo.c:6: error: for each function it appears in.)aloumundo.c:6: error: window undeclared (first use in this function)aloumundo.c:10: error: GTK_WINDOW_TOPLEVEL undeclared (first use in this function)Bom, a coisa comeca pelo fato de que o compilador nao encontrou a biblioteca gtk (personificada, digamos assim, neste exemplo, pelo arquivo gtk.h). E a partir dai, nada relacionado com gtk foi interpretado.O que acontece e que, apesar de estarmos usando um ambiente grafico baseado em GTK (Gnome), ou seja, a biblioteca gtk esta garantidamente instalada no sistema, precisamos instalar a biblioteca PARA DESENVOLVIMENTO. Em sistemas baseados no Debian, acho que em 99% dos casos, bibliotecas para desenvolvimento tem seu nome terminado em -dev (em outras distribuicoes, este tipo de biblioteca tem seu nome terminado em -devel).Abrimos o gerenciador de pacotes Synaptic, e procuramos por libgtk:Descobrimos que o nome correto e libgtk2.0-dev. Ao marcarmos para instalacao, o Synaptic automaticamente seleciona outros pacotes que tambem sao requeridos. Na verdade, quando falamos em GTK estamos falando em um conjunto de bibliotecas, como por exemplo, GLib (funcoes utilitarias de proposito geral), GDK (camada entre o sistema grafico X e GTK), Pango (textos e fontes), ATK (acessibilidade), entre outras.Agora, com as bibliotecas instaladas, podemos tentar compilar novamente, e.... ue?!?!? Erro de novo?Isso acontece porque precisamos indicar ao GCC que queremos utilizar uma biblioteca extra, alem da biblioteca-padrao, que ele ja sabe usar diretamente. Isso significa indicar os seguintes itens:caminho para o diretorio onde estao os "includes" da(s) biblioteca(s) que voce quer usar. Isso e feito utilizando-se a opcao -I (letra "i" maiuscula);caminho para o diretorio onde estao as bibliotecas a serem utilizadas. Isso e feito utilizando-se a opcao -L (letra "l" maiuscula);finalmente, quais bibliotecas serao utilizadas, com a opcao -l (letra "l" minuscula). Nomes de bibliotecas comecam pelas letras "lib" (por exemplo, libblabla), e utilizamos com -lblabla (o nome depois do lib).Ja falamos que GTK e composta de varias bibliotecas de suporte. Isso significa dizer que, para compilar usando GTK, teremos que informar ao compilador, usando as opcoes acima, diretorios e bibliotecas para todas elas. Felizmente, temos um programa que nos auxilia nisso, chamado pkg-config, retornando as informacoes necessarias, para um pacote/biblioteca especifico. Como nos diz o comando man,"The pkg-config program is used to retrieve information about installed libraries in the system. It is typically used to compile and link against one or more libraries."Entao vamos experimentar, digite no terminal:pkg-config --cflags --libs gtk+-2.0A opcao --cflags diz para retornar informacoes acerca dos includes, e --libs para bibliotecas, tudo isso relativo ao pacote indicado no final da linha, "gtk+-2.0".Voce deve ter obtido a seguinte saida:-pthread -D_REENTRANT -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/gio-unix-2.0/ -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/directfb -I/usr/include/libpng12 -pthread -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lgdk_pixbuf-2.0 -lm -lpangocairo-1.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0... ou seja, todos os parametros necessarios para voce compilar um programa que utilize a biblioteca GTK (e suas companheiras).E como utilizamos isso? Copio essa coisa toda e digito junto com o comando de compilacao, gcc?? Nao precisa.