Pregunta

Tengo:

GFile* gf = g_file_new_for_path(file_path);

en mi código. Pero cuando intento compilar, lo veo de error:

referencia indefinida a: 'g_file_new_for_path'

En incluyen sección He #include <gio/gio.h>

¿Qué hay de malo en este código?

¿Fue útil?

Solución

Me re-etiquetados su pregunta, esto no es GTK +, que de Gio.

Como se ha descubierto de acuerdo con su comentario, su problema era debido a no vincular con las bibliotecas adecuadas. Esto se debe a que en C, sólo que incluye una cabecera no le dice al compilador dónde encontrar el código que implementa las cosas declaradas en esa cabecera. Para ello, normalmente se necesita para enlace con las bibliotecas adecuadas (o compilar el código directamente, como lo hace dentro de sus propios proyectos).

La forma recomendada, por cierto, para hacer referencia a las bibliotecas está utilizando una herramienta como pkg- config . A continuación, la compilación sería algo como esto:

$ gcc -o mygiotest mygiotest.c $(pkg-config --cflags --libs glib-2.0 gobject-2.0 gio-2.0)

Es necesario volver a verificar lo anterior, no estoy en Linux mientras escribo esto, así que no puedo verificar los nombres de los paquetes exacta.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top