【发布时间】:2021-07-28 03:40:37
【问题描述】:
这是我的 main.c 和 main.cpp 代码
#include <gtk/gtk.h>
void quitButtonClicked(__attribute__((unused)) GtkWidget *widget,
__attribute__((unused)) gpointer data)
{
g_print("Quit Clicked\n");
gtk_main_quit();
}
// Handle the user trying to close the window
gboolean windowDelete(__attribute__((unused)) GtkWidget *widget,
__attribute__((unused)) GdkEvent *event,
__attribute__((unused)) gpointer data)
{
g_print("%s called.\n",__FUNCTION__);
return FALSE; // Returning TRUE stops the window being deleted.
// Returning FALSE allows deletion.
}
int main ( int argc, char **argv) {
GtkWidget *window;
GtkBuilder *builder = NULL;
gtk_init (&argc , &argv);
builder = gtk_builder_new();
if(gtk_builder_add_from_file (builder,"window_main.glade" , NULL) == 0)
{
printf("gtk_builder_add_from_file FAILED\n");
return(0);
}
window = GTK_WIDGET (gtk_builder_get_object (builder,"window1"));
gtk_builder_connect_signals(builder,NULL);
gtk_widget_show_all (window);
gtk_main ();
return 0;
}
编译时使用 gcc -o hello_world $(pkg-config --cflags --libs gtk+-3.0) -rdynamic main.c
一切都很完美。
但是运行这个不起作用。 g++ -o hello_world $(pkg-config --cflags --libs gtkmm-3.0) -rdynamic main.cpp
我收到此警告。
(hello_world:40684): Gtk-WARNING **: 15:32:33.179: 找不到信号处理程序“windowDelete”。你是用 -rdynamic 编译的吗?
如何修改我的 g++ 编译以确保它按预期工作?我想稍后运行 C++ 代码而不是 C。
【问题讨论】:
标签: c++ user-interface gcc g++ gtk