Estoy tratando de compilar un programa C, con estos encabezados: http://pastebin.com/SppCXb0U, en Ubuntu. Al principio no tenía un poco de suerte, pero después de leer sobre PKG-config Construí esta línea:Compilando el programa C con archivos de cabecera dbus
gcc `pkg-config --cflags --libs dbus-1` `pkg-config --cflags --libs glib-2.0` signals-tutorial.c
Sin embargo, todavía no funciona y me da este error:
/tmp/cc3BkbdA.o: In function `filter_example':
signals-tutorial.c:(.text+0x1a3): undefined reference to `dbus_connection_setup_with_g_main'
/tmp/cc3BkbdA.o: In function `proxy_example':
signals-tutorial.c:(.text+0x29a): undefined reference to `g_type_init'
signals-tutorial.c:(.text+0x2b3): undefined reference to `dbus_g_bus_get'
signals-tutorial.c:(.text+0x323): undefined reference to `dbus_g_proxy_new_for_name'
signals-tutorial.c:(.text+0x369): undefined reference to `dbus_g_proxy_add_signal'
signals-tutorial.c:(.text+0x38a): undefined reference to `dbus_g_proxy_connect_signal'
collect2: ld returned 1 exit status
No estoy seguro de qué hacer aquí.
==================================
Una buena explicación - gracias. Sin embargo, no puedo hacer que funcione. Ejecutando su comando arriba (con un agregado) produce el siguiente resultado
gcc `pkg-config --cflags dbus-1` \
> `pkg-config --cflags glib-2.0` \
> signals-tutorial.c \
> `pkg-config --libs dbus-1` \
> `pkg-config --libs glib-2.0`
/tmp/ccjN0QMh.o: In function `filter_example':
signals-tutorial.c:(.text+0x1a3): undefined reference to `dbus_connection_setup_with_g_main'
/tmp/ccjN0QMh.o: In function `proxy_example':
signals-tutorial.c:(.text+0x29a): undefined reference to `g_type_init'
signals-tutorial.c:(.text+0x2b3): undefined reference to `dbus_g_bus_get'
signals-tutorial.c:(.text+0x323): undefined reference to `dbus_g_proxy_new_for_name'
signals-tutorial.c:(.text+0x369): undefined reference to `dbus_g_proxy_add_signal'
signals-tutorial.c:(.text+0x38a): undefined reference to `dbus_g_proxy_connect_signal'
collect2: ld returned 1 exit status
Muchas gracias por su buena respuesta. El campo de comentarios no es lo suficientemente grande como para publicar mis resultados, así que lo pegué en la publicación principal. –
¿Qué significan las salidas 'pkg-config --libs dbus-1' y' pkg-config --libs glib-2.0'? –
'-L/usr/lib/x86_64-linux-gnu -ldbus-1 -lpthread -lrt' y' -L/usr/lib/x86_64-linux-gnu -lglib-2.0' respectivly –