I have downloaded files from http://cgit.collabora.com/git/user/alban/dbus-ping-pong.git/tree/

I am trying to compile it using the command

gcc pkg-config --libs --cflags dbus-1 dbus-glib-1-2 glib-2.0 -o dbus-ping-pong dbus-ping-pong.c

However, I get errors:

/tmp/ccmJkxXb.o: In function g_once_init_enter:
dbus-ping-pong.c:(.text+0x22): undefined reference to g_once_init_enter_impl
/tmp/ccmJkxXb.o: In function
dbus-ping-pong.c:(.text+0x52): undefined reference to g_return_if_fail_warning
dbus-ping-pong.c:(.text+0x79): undefined reference to g_return_if_fail_warning
dbus-ping-pong.c:(.text+0x9d): undefined reference to g_value_peek_pointer
dbus-ping-pong.c:(.text+0xac): undefined reference to g_value_peek_pointer
dbus-ping-pong.c:(.text+0x109): undefined reference to g_value_set_boolean
/tmp/ccmJkxXb.o: In function echo_ping_class_intern_init:
dbus-ping-pong.c:(.text+0x122): undefined reference to g_type_class_peek_parent
/tmp/ccmJkxXb.o: In function echo_ping_get_type:
dbus-ping-pong.c:(.text+0x162): undefined reference to g_intern_static_string
dbus-ping-pong.c:(.text+0x192): undefined reference to g_type_register_static_simple
dbus-ping-pong.c:(.text+0x1a8): undefined reference to g_once_init_leave
/tmp/ccmJkxXb.o: In function echo_ping_class_init:
dbus-ping-pong.c:(.text+0x1cd): undefined reference to g_type_class_add_private
dbus-ping-pong.c:(.text+0x1e2): undefined reference to dbus_g_object_type_install_info
/tmp/ccmJkxXb.o: In function echo_ping_init:
dbus-ping-pong.c:(.text+0x1fe): undefined reference to g_type_instance_get_private
/tmp/ccmJkxXb.o: In function echo_ping:
dbus-ping-pong.c:(.text+0x21d): undefined reference to g_strdup
/tmp/ccmJkxXb.o: In function client:
dbus-ping-pong.c:(.text+0x265): undefined reference to dbus_g_proxy_new_for_name
dbus-ping-pong.c:(.text+0x2c3): undefined reference to dbus_g_proxy_call
dbus-ping-pong.c:(.text+0x2d1): undefined reference to dbus_g_error_quark
dbus-ping-pong.c:(.text+0x2f1): undefined reference to dbus_g_error_get_name
dbus-ping-pong.c:(.text+0x305): undefined reference to g_printerr
dbus-ping-pong.c:(.text+0x31d): undefined reference to g_printerr
dbus-ping-pong.c:(.text+0x328): undefined reference to g_error_free
dbus-ping-pong.c:(.text+0x358): undefined reference to g_print
dbus-ping-pong.c:(.text+0x363): undefined reference to g_free
/tmp/ccmJkxXb.o: In function main:
dbus-ping-pong.c:(.text+0x38f): undefined reference to g_type_init
dbus-ping-pong.c:(.text+0x3a3): undefined reference to dbus_g_bus_get
dbus-ping-pong.c:(.text+0x3c7): undefined reference to g_object_new
dbus-ping-pong.c:(.text+0x3df): undefined reference to g_type_check_instance_cast
dbus-ping-pong.c:(.text+0x3f9): undefined reference to dbus_g_connection_register_g_object
dbus-ping-pong.c:(.text+0x406): undefined reference to dbus_g_connection_get_connection
dbus-ping-pong.c:(.text+0x426): undefined reference to dbus_bus_request_name
dbus-ping-pong.c:(.text+0x43a): undefined reference to g_main_loop_new
dbus-ping-pong.c:(.text+0x44a): undefined reference to g_main_loop_run

How do I resolve this issue ?


Linking stuff goes at end, try that:

gcc $(pkg-config --cflags dbus-1 dbus-glib-1) -o dbus-ping-pong dbus-ping-pong.c $(pkg-config --libs dbus-1 dbus-glib-1)

By the way, after compiling successfully using that command, I launched the program und i've got that:

Error: The name com.example.DBus.Echo was not provided by any .service files

Do you know how might we use that program?

PS: I've used $( ... ) rather than backticks because it didn't pass the form correctly.

PS2: I've found the solution at my own question:

Create the file "/usr/share/dbus-1/services/com.example.DBus.Echo.service" with the following content:

[D-BUS Service]
Exec=/home/telecom/bachelordbus/dbus-ping-pong/dbus-ping-pong server

Thank you, Eliah, for the explanations.

  • If you want to use backticks instead of $( ... ), enclose them in a preformatted code block (by putting four spaces before the line, or by selecting what you want in the block and clicking the <$> button in the editing toolbar (or by enclosing it in <pre><code> ... </code></pre> HTML tags). – Eliah Kagan Jun 2 '12 at 16:21

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.