Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

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_glib_marshal_echo_srv__BOOLEAN__STRING_POINTER_POINTER:
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 ?

share|improve this question

1 Answer 1

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]
Name=com.example.DBus.Echo
Exec=/home/telecom/bachelordbus/dbus-ping-pong/dbus-ping-pong server
User=root

Thank you, Eliah, for the explanations.

share|improve this answer
    
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

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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