我找到了一个关于使用Gnome Keyrings的示例,但我无法编译它,我不知道所需的包含或库,我似乎无法在文档中找到此信息,所以任何帮助真的很感激!
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <glib.h>
#include <gtkmm.h>
/* A callback called when operation completes */
static void stored_password (GnomeKeyringResult res, gpointer user_data)
{
/* user_data will be the same as was passed to gnome_keyring_store_password() */
if (res == GNOME_KEYRING_RESULT_OK)
g_print ("password saved successfully!\n");
else
g_print ("couldn't save password: %s", gnome_keyring_result_to_message (res));
}
static void save_my_password()
{
gnome_keyring_store_password (GNOME_KEYRING_NETWORK_PASSWORD, /* The password type */
GNOME_KEYRING_DEFAULT, /* Where to save it */
_("My special password"), /* Password description, displayed to user */
"the-password", /* The password itself */
stored_password, /* A function called when complete */
NULL, NULL, /* User data for callback, and destroy notify */
/* These are the attributes */
"user", "me",
"server", "gnome.org",
NULL); /* Always end with NULL */
}
int main()
{
save_my_password();
return 0;
}
再次感谢。
答案 0 :(得分:1)
您可以使用pkg-config和shell扩展来自动获取所需的依赖项:
gcc -o test test.c $(pkg-config --libs --cflags gnome-keyring-1 gtk+-2.0)
此外,不是包括gtkmm.h
标题包括普通gtk+.h
:
-#include <gtkmm.h>
+#include <gtk/gtk.h>
Gtkmm是C ++接口,如果你用普通的C编码,你真的不需要它。
现在,当我查看你的main
函数时,我不得不说你的方法几乎是正确的,但它不起作用,因为为了运行gtk + apps(显示小部件,如错误对话框),你需要先做一些初始化(即启动主循环)。查看说明中的Typical main() function for Gtk+ application example。