Cabeceras y enlazado

A pesar de que hemos mostrado el comando de compilación para el ejemplo simple, en realidad debería usar las herramientas automake y autoconf, como se describe en «Autoconf, Automake, Libtool», por G. V. Vaughan y otros. Los ejemplos utilizados en este libro se incluyen en el paquete gtkmm, con archivos de construcción apropiados, por lo que no mostraremos los comandos de construcción en el futuro. Sólo tendrá que encontrar la carpeta adecuada e introducir make.

Para simplificar la compilación, se usa pkg-config, que está presente en todas las instalaciones correctas de gtkmm. Este programa «sabe» qué opciones de compilación son necesarias para compilar los programas que usan gtkmm. La opción --cflags hace que pkg-config devuelva la lista de carpetas en las que el compilador buscará los archivos de cabecera; la opción --libs solicita la lista de bibliotecas a las que el compilador enlazará y las carpetas en las que encontrarlas. Intente ejecutarlo desde su intérprete de comandos para ver los resultados en su sistema.

Sin embargo, es aún más simple cuando se utiliza la macro PKG_CHECK_MODULES() en un archivo estándar configure.ac con autoconf y automake. Por ejemplo:

PKG_CHECK_MODULES([MYAPP], [gtkmm-3.0 >= 3.0.0])
Esto comprueba la presencia de gtkmm y define MYAPP_LIBS y MYAPP_CFLAGS para su uso en los archivos Makefile.am.

gtkmm-3.0 es el nombre de la API estable actual. Hubo una API más antigua llamada gtkmm-2-4 que se instalará en paralelo cuando está disponible. Hubo varias versiones de gtkmm-2.4, tales como gtkmm 2.10 y habrá varias versiones de la API gtkmm-3.0. Tenga en cuenta que el nombre de la API no cambia para todas las versiones, porque esto implicaría una API incompatible y una ABI rota. Teóricamente, podría haber un futura API gtkmm-4.0 que se instalaría en paralelo con gtkmm-3.0 sin afectar las aplicaciones existentes.

Tenga en cuenta que si menciona módulos adicionales, además de gtkmm-3.0, deben estar separados por espacios, no por comas.

Openismus tiene más ayuda básica con automake y autoconf