Linux - Problema con GTKmm

 
Vista:

Problema con GTKmm

Publicado por Sergio (2 intervenciones) el 15/01/2004 18:59:40
Buenas

A ver, pues me he descargado y compilado las librerias GTKmm para hacer soft con GTK y C++, bien todo ha ido bien, incluso la libreria de señales tambien en c++ libsigc++, todo se ha instalao perfecto, pero a la hora de hacer cualquier codigo las librerias no me las encuentra y si consigo algo parecido a que me las encuentre, pos se me pone a dar errores, que para cortarme las venas.

Tengo las librerias en /usr/local/lib y las cabeceras en /usr/local/include cada una en su directorio gtkmm-2.0 y sigc++-1.2 bien,

El codigo es algo asi :

#include <gtkmm/button.h>
#include <sigc++/sigc++.h>

void hello()
{
cout << "Prueba simple " << endl;
}

int main()
{
Gtk::Button boton("Hola");
boton.clicked.connect(slot(hello));
}

Bien esto es de un tutorial, pero a la hora de compilar pongo
g++ prueba.cc -o prueba `gtkmm-config --libs --cflags`
pero esto no va, dice que no me encuentra las cabeceras. y si las añado al script 'gtkmm-config' pos entonces es cuando empieza a dar errores a montones.

Alguien sabe si una vez instaladas las librerias tengo que ejecutar algun script o modificar algun fichero, para añadirlas a la ruta o algo parecido, estoy verde en el tema de rutas y librerias en linux.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Problema con GTKmm

Publicado por chuidiang (101 intervenciones) el 22/01/2004 10:48:13
Usa las siguientes opciones del g++

-I<path> ( i mayúscula) Aqui pones el path de tus include

-L<path> Aquí pones el path de tus librerias.

-l<libreria> (L minuscula) La librería se pone sin extensión y sin el lib que suele venir delante. Si es "libuna.a", pones "-luna".

En tu caso, más o menos

g++ prueba.cc -I/usr/local/include -I<otro_path> -L/usr/local/lib -L<otro_path> -lsigc++ -l<otra_libreria>

Otra cosa, el orden de las librerías en este comando es importante. Deben ponerse primero las de más alto nivel. Es decir, si pones

-lA -lB

la libreria A puede llamar a funciones de la libreria B, pero no al revés.

Si lo haces al revés, te dará errores de "linkado".

Se bueno.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar