Cabeçalhos e vinculação

Embora tenhamos mostrado o comando de compilação para o exemplo simples, você deveria, na verdade, usar as ferramentas automake e autoconf, como descritas no Autoconf, Automake, Libtool", de G. V. Vaughan et al. Os exemplos usados neste livro estão inclusos no pacote gtkmm, como os arquivos de compilação apropriados, então não mostraremos mais esses comandos. Você só precisará achar o diretório correto e digitar make.

Para simplificar a compilação, usaremos o pkg-config, que está presente em todas as instalações do gtkmm (se instaladas apropriadamente). Esse programa "sabe" quais opções de compilador são necessárias para compilar os programa que usam gtkmm. A opção --cflags faz com que o pkg-config emita uma lista de diretórios de inclusão para o compilador buscar; a opção --libs solicita a lista de bibliotecas às quais o compilador deve vincular e os diretórios onde achá-los. Experimente executá-lo no seu prompt do shell para ver os resultados no seu sistema.

Entretanto, isso é ainda mais simples quando se usa a macro PKG_CHECK_MODULES() em um arquivo configure.ac padrão com autoconf e automake. Por exemplo:

PKG_CHECK_MODULES([MEUAPLICATIVO], [gtkmm-3.0 >= 3.0.0])
Isso confere a presença de gtkmm e define MEUAPLICATIVO_LIBS e MEUAPLICATIVO_CFLAGS para usar em seus arquivos Makefile.am.

gtkmm-3.0 é o nome da API estável atual. Existiu uma antiga chamada gtkmm-2.4 que instala em paralelo quando disponível. Existem muitas versões do gtkmm-2.4, como gtkmm 2.10, e existem várias versões da API gtkmm-3.0 No que o nome da API não se altera a cada versão, por que isso seria uma quebra de compatibilidade de API e ABI. Teoricamente, pode existir uma futura API gtkmm-4.0, que se instalaria em paralelo com o gtkmm-3.0 sem afetar os aplicativos existentes.

Note que se você mencionar módulos além do gtkmm-3.0, eles seriam separados por espaços, e não por vírgulas.

Openismus tem mais ajuda básica sobre automake e autoconf.