2009-08-22 9 views
8

Estoy jugueteando con la versión C/C++ de Eclipse para construir una aplicación GTK simple. Sin embargo, parece que no puedo compilar una muestra GTK desde Eclipse. Puedo compilar una sencilla aplicación de prueba de estilo Hello World, así que sé que la cadena de herramientas está funcionando. Sin embargo, en el momento en que empiezo a agregar GTK a la mezcla, el compilador genera errores. Lo curioso es que puedo compilar los ejemplos fuera del entorno de Eclipse sin problemas. Por ejemplo, estoy usando los ejemplos en la página this y siguiendo las instrucciones dadas aquí permítanme construir un binario en funcionamiento.Compilando C/GTK dentro de Eclipse

Creo que el primer problema es que el archivo de inclusión GTK principal se hace referencia de manera diferente cuando intento compilar dentro de Eclipse. La versión no Eclipse puedo compilar con (como en el ejemplo):

#include <gtk/gtk.h> 

Sin embargo, dentro Eclipse esto no funciona. Necesito cambiar a:

#include <gtk-2.0/gtk/gtk.h> 

El archivo de inclusión puede entonces ser encontrado, pero el proceso de compilación y luego empieza a tirar errores sobre el tipo GtkWidget. Ej .:

#include <gtk-2.0/gtk/gtk.h> 

int main(int argc, char *argv[]) 
{ 
    GtkWidget *window; 

    gtk_init (&argc, &argv); 

    window = gtk_window_new (GTK_WINDOW_TOPLEVEL); 
    gtk_widget_show (window); 

    gtk_main(); 

    return 0; 
} 

Los resultados de estos errores:

make all 
Building file: ../src/main.c 
Invoking: GCC C Compiler 
gcc -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"src/main.d" -MT"src/main.d" -o"src/main.o" "../src/main.c" 
../src/main.c: In function ‘main’: 
../src/main.c:7: error: ‘GtkWidget’ undeclared (first use in this function) 
../src/main.c:7: error: (Each undeclared identifier is reported only once 
../src/main.c:7: error: for each function it appears in.) 
../src/main.c:7: error: ‘window’ undeclared (first use in this function) 
../src/main.c:9: warning: implicit declaration of function ‘gtk_init’ 
../src/main.c:11: warning: implicit declaration of function ‘gtk_window_new’ 
../src/main.c:11: error: ‘GTK_WINDOW_TOPLEVEL’ undeclared (first use in this function) 
../src/main.c:12: warning: implicit declaration of function ‘gtk_widget_show’ 
../src/main.c:14: warning: implicit declaration of function ‘gtk_main’ 
make: *** [src/main.o] Error 1 

No está seguro de cómo hacer esto. Cualquier ayuda sería muy apreciada.

Respuesta

8

Haga clic con el botón derecho en el proyecto Eclipse y seleccione propiedades. Desde el menú desplegable Configuración, seleccione [ All configurations ]. A continuación, en la pestaña de configuración de la herramienta seleccionar GCC C Compiler (por defecto) y añadir el cuadro siguiente para los ajustes de Expertos (Command line pattern) finales:

`pkg-config --cflags --libs gtk+-2.0` 

hacer lo mismo para la opción GCC C Linker.

Si no desea iniciar sus rutas de inclusión con gtk-2.0, también agregue el directorio de inclusión (/usr/include/gtk-2.0) como se sugirió aardvark.

+1

no puedo encontrar la configuración desplegable.puede ayudarme por favor ? –

+0

¿Qué versión de Eclipse está usando y qué tipo de proyecto creó? La pregunta original es del '09, por lo que las cosas podrían haber cambiado o moverse un poco en la interfaz de usuario de Eclipse. – Luke

3

Trate de añadir el directorio gtk a la trayectoria de la estructura:

Id por proyecto Propiedades -> C/C++ de construcción -> Configuración -> Herramienta de configuración -> Directorios y agregarlo en Incluir caminos.

+0

Gracias. Eso hizo que Eclipse no reconociera el gtk/gtk.h pero cuando compilo ahora recibo tantos errores. Los dos últimos son un poco raros: ../src/main.c: 16: error: declaraciones de parámetros de estilo antiguo en la definición de función de prototipo ../src/main.c:16: error: expected '{' al final de la entrada – Luke

1

Un alivio largamente esperado teniendo en cuenta que la compatibilidad con pkg-config para Eclipse CDT estará disponible próximamente.

El soporte está en desarrollo y se integrará a CDT alrededor de agosto más o menos.

La característica más importante es que una interfaz de usuario fácil de usar permite seleccionar los paquetes necesarios. página web

Proyecto: http://code.google.com/p/pkg-config-support-for-eclipse-cdt/

Actualización: No dude en probar la versión beta:
http://marketplace.eclipse.org/content/pkg-config-support-eclipse-cdt
feedback se aprecia!

+0

parece estar roto: solo se agregan las libs pero no las rutas (en Eclipse Oxygen) – OBu