Começando com o Xubuntu 14.04 em uma máquina recondicionada (2GB mem, 2GHz dual core) e tenho um conhecimento superficial / de leitura de c, mas não sou um programador C.
Estou tentando compilar o código que encontrei aqui para criar uma notificação visual para a ação de mover entre espaços de trabalho. O código:
// wschanged.c
#include <libwnck/libwnck.h>
#include <stdlib.h>
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;
}
O comando de compilação:
gcc -O2 -DWNCK_I_KNOW_THIS_IS_UNSTABLE -o wschanged 'pkg-config --cflags --libs libwnck-3.0' wschanged.c
Os erros que estou recebendo:
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
Eu tenho a versão mais recente do libwnck e também adicionei:
#include <glib.h>
para ver se isso corrigiria os erros parecendo derivar de referências indefinidas para objetos no pacote glib, mas isso não alterou a saída de erros.
Qualquer sugestão seria muito apreciada!