我收到这样的错误:
warning: format not a string literal and no format arguments [-Wformat-security]
GTK_BUTTONS_OK,
(const gchar*)message);
^
因为这个功能:
static void show_message (gchar *message, GtkMessageType type) {
GtkWidget *dialog = gtk_message_dialog_new(NULL, 0, type,
GTK_BUTTONS_OK,
message);
gtk_dialog_run(GTK_DIALOG(dialog));
gtk_widget_destroy(dialog);
}
我该如何解决?
答案 0 :(得分:3)
答案很简单。
您必须将"%s"
添加到gtk_message_dialog_new()
函数的参数中,如下所示:
static void show_message (gchar *message, GtkMessageType type) {
GtkWidget *dialog = gtk_message_dialog_new(NULL, 0, type,
GTK_BUTTONS_OK, "%s",
message);
gtk_dialog_run(GTK_DIALOG(dialog));
gtk_widget_destroy(dialog);
}
基本上,"%s"
认为缺少gcc
是不安全的。
您可以在此处详细了解: