Неопределенная справочная ошибка для компонентов glib даже с включенным glib

Только начинаю с Xubuntu 14.04 на отремонтированной машине (2 ГБ памяти, 2 ГГц двухъядерный) и имею поверхностные знания / чтение c, но я не программист на ac .

Я пытаюсь скомпилировать код, который я нашел здесь , чтобы создать визуальное уведомление о перемещении между рабочими пространствами. Код:

// wschanged.c
#include 
#include 


static void
on_active_workspace_changed (WnckScreen    *screen,
                             WnckWorkspace *space,
                             gpointer      data)
{
    // Executes a script on workspace change
    system ("~/.workspace-changed");
}

int main(int argc, char ** argv)
{

   GMainLoop *loop;   
   WnckScreen *screen;

   glib:gdk_init (&argc, &argv);

   loop = g_main_loop_new (NULL, FALSE);
   screen = wnck_screen_get_default();

   g_signal_connect (screen, "active-workspace-changed",
                    G_CALLBACK (on_active_workspace_changed), NULL);

   g_main_loop_run (loop);
   g_main_loop_unref (loop);    

   return 0;
}

Команда компиляции:

gcc -O2 -DWNCK_I_KNOW_THIS_IS_UNSTABLE -o wschanged `pkg-config  --cflags --libs libwnck-3.0` wschanged.c

Ошибки, которые я получаю:

wschanged.c: In function ‘on_active_workspace_changed’:
wschanged.c:12:12: warning: ignoring return value of ‘system’, declared with attribute warn_unused_result [-Wunused-result]
     system ("~/.workspace-changed");
            ^
/tmp/ccR60OkB.o: In function `main':
wschanged.c:(.text.startup+0x16): undefined reference to `gdk_init'
wschanged.c:(.text.startup+0x1f): undefined reference to `g_main_loop_new'
wschanged.c:(.text.startup+0x27): undefined reference to `wnck_screen_get_default'
wschanged.c:(.text.startup+0x41): undefined reference to `g_signal_connect_data'
wschanged.c:(.text.startup+0x49): undefined reference to `g_main_loop_run'
wschanged.c:(.text.startup+0x51): undefined reference to `g_main_loop_unref'
collect2: error: ld returned 1 exit status

У меня последняя версия libwnck, и я также добавил:

#include 

, чтобы посмотреть, исправит ли это кажущиеся ошибки происходит из неопределенных ссылок на объекты в пакете glib, но это не повлияло на вывод ошибок.

Будем признательны за любые предложения!

0
05.05.2017, 00:31
1 ответ

Порядок аргументов для gcc имеет значение, поэтому вам необходимо разделить варианты --cflags и --libs пакета pkg -config вызовы:

gcc -O2 -DWNCK_I_KNOW_THIS_IS_UNSTABLE -o wschanged `pkg-config --cflags libwnck-3.0` wschanged.c `pkg-config --libs libwnck-3.0`
2
28.01.2020, 02:33

Теги

Похожие вопросы