Es gibt viele ähnliche Fragen, aber leider haben sie nicht viel geholfen.gcc undefined Verweis auf dbus_ *
Ich versuche Programm von this Post zu bauen, und einen Fehler hat:
$ gcc `pkg-config --libs --cflags dbus-1` hh.c -o hh
/tmp/ccMabXOg.o: In function `main':
hh.c:(.text+0x18): undefined reference to `dbus_error_init'
hh.c:(.text+0x29): undefined reference to `dbus_bus_get'
hh.c:(.text+0x39): undefined reference to `dbus_error_is_set'
hh.c:(.text+0x5f): undefined reference to `dbus_error_free'
hh.c:(.text+0x80): undefined reference to `dbus_bus_name_has_owner'
hh.c:(.text+0x8f): undefined reference to `dbus_error_is_set'
hh.c:(.text+0x9f): undefined reference to `dbus_error_free'
hh.c:(.text+0xfb): undefined reference to `dbus_bus_request_name'
hh.c:(.text+0x10a): undefined reference to `dbus_error_is_set'
hh.c:(.text+0x11a): undefined reference to `dbus_error_free'
collect2: error: ld returned 1 exit status
Es gibt include <dbus/dbus.h>
, und auf dem System vorhanden Datei:
# find/-name "dbus.h" -type f
/usr/include/dbus-1.0/dbus/dbus.h
Aber dbus_error_init
zum Beispiel vorhanden in dbus-errors.h
Datei:
# grep -r dbus_error_init /usr/include/dbus-1.0/dbus/
/usr/include/dbus-1.0/dbus/dbus-errors.h:void dbus_error_init (DBusError *error);
Ich bin kein C-Entwickler und nicht zu sehr vertraut mit gcc
und dem Linker, so dass alle Tipps/Links geschätzt werden.
installieren Wenn Sie laufen 'pkg-config --libs --cflags dbus-1 ' allein, was ist die Ausgabe? – fluter
'$ pkg-config --libs --cflags dbus-1 -I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include -ldbus-1' – setevoy
Sie müssen Ihre Anwendung mit der dbus-1-Bibliothek verknüpfen. –