c++ eclipse gtkmm

c++ - Problemas compilando gtkmm



eclipse (2)

Estos pasos generalmente ayudan a resolver este problema:

  • Busca en tu computadora por glibmm.h
    • Si se encuentra, agregue su directorio a la lista de rutas de inclusión
    • Si no lo encuentra, busque en Google para glibmm.h y averigüe en qué biblioteca se encuentra. Encontrará en este caso que es (¡sorpresa!) Glibmm. Instálalo usando tu gestor de paquetes.

El problema, como se señaló en los comentarios, es un error del compilador y el compilador está discutiendo acerca de un archivo faltante (encabezado). Los pasos que describí anteriormente encuentran la ubicación del archivo faltante o lo ayudan a instalar una biblioteca a la que pertenece el archivo de encabezado.

OS: Fedora 14

Compilador: g ++ (GCC) 4.5.1 20100924 (Red Hat 4.5.1-4)

Instalé gtkmm24-devel desde el repositorio a través de yum. Para asegurarme de que la instalación se realizó según lo planeado, decidí probar uno de los ejemplos de la página.

#include <gtkmm.h> int main(int argc, char *argv[]) { Gtk::Main kit(argc, argv); Gtk::Window window; Gtk::Main::run(window); return 0; }

Corrí el ejemplo, y, hey! Dijo que no podía encontrar gtkmm.h, no hay problema, simplemente olvidé vincular la biblioteca. Agregué /usr/include/gtkmm-2.4 a mi búsqueda en la biblioteca a través de Eclipse. No bueno, g ++ todavía no lo encuentro!

fatal error: gtkmm.h: No such file or directory

Luego trato de incluir gtkmm usando #include <gtkmm-2.4/gtkmm.h> y recompile, ¡otro error! :(

/usr/include/gtkmm-2.4/gtkmm.h:87:20: fatal error: glibmm.h: No such file or directory

Gracias por leer.


Respuesta corta

Use la salida de ''pkg-config gtkmm-2.4 --cflags'' para incluir rutas y ''pkg-config gtkmm-2.4 --libs'' para vincular las bibliotecas.

Respuesta larga

Dijo que no podía encontrar gtkmm.h, no hay problema, simplemente olvidé vincular la biblioteca.

La construcción de un programa C / C ++ se realiza en dos pasos separados. Primero se compilan los archivos de origen, generando archivos de objetos; y luego los archivos de objetos están vinculados entre sí. El error que está recibiendo viene del paso de compilación.

En Linux, la mayoría de las bibliotecas vienen con archivos pkgconfig para facilitar el uso de otras bibliotecas por otros programas. gtkmm también viene con sus propios archivos pkgconfig.

Está intentando especificar manualmente /usr/include/gtkmm-2.4 para la ruta de inclusión; esto está mal. En su lugar, use la salida de pkgconfig para averiguar dónde se encuentran los archivos de encabezado. Para obtener todos los directorios de inclusión necesarios para gtkmm, use el siguiente comando:

pkg-config gtkmm-2.4 --cflags

Para vincular, use el siguiente comando pkgconfig para obtener las bibliotecas con las que necesita vincular:

pkg-config gtkmm-2.4 --libs

Puede probarlo en la línea de comandos invocando g ++ directamente.

g++ myfirstprogram.cpp -o myfirstprogram `pkg-config gtkmm-2.4 --cflags --libs`

Para obtener más información, consulte los documentos de gtkmm: http://library.gnome.org/devel/gtkmm-tutorial/unstable/sec-basics-simple-example.html.en