如何在代码块

时间:2015-05-04 07:02:30

标签: c gtk codeblocks

我想设置gtk2而且我做了:

compiler option:pkg-config --cflags gtk+-2.0
likker option:pkg-config --libs gtk+-2.0

我将路径gtk2添加到变量路径并将gdk-pixbuff添加到用户变量 但是当我编译下面的代码时;

#include <gtk/gtk.h>


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

  GtkWidget *window;
  GtkWidget *vbox;

  GtkWidget *menubar;
  GtkWidget *filemenu;
  GtkWidget *file;
  GtkWidget *quit;

  gtk_init(&argc, &argv);

  window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
  gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
  gtk_window_set_default_size(GTK_WINDOW(window), 250, 200);
  gtk_window_set_title(GTK_WINDOW(window), "menu");

  vbox = gtk_vbox_new(FALSE, 0);
  gtk_container_add(GTK_CONTAINER(window), vbox);

  menubar = gtk_menu_bar_new();
  filemenu = gtk_menu_new();

  file = gtk_menu_item_new_with_label("File");
  quit = gtk_menu_item_new_with_label("Quit");

  gtk_menu_item_set_submenu(GTK_MENU_ITEM(file), filemenu);
  gtk_menu_shell_append(GTK_MENU_SHELL(filemenu), quit);
  gtk_menu_shell_append(GTK_MENU_SHELL(menubar), file);
  gtk_box_pack_start(GTK_BOX(vbox), menubar, FALSE, FALSE, 3);

  g_signal_connect_swapped(G_OBJECT(window), "destroy",
        G_CALLBACK(gtk_main_quit), NULL);

  g_signal_connect(G_OBJECT(quit), "activate",
        G_CALLBACK(gtk_main_quit), NULL);

  gtk_widget_show_all(window);

  gtk_main();

  return 0;
}

错误未定义参考

错误日志:

  

|| === gfffnewaa,Debug === | obj \ Debug \ main.o ||在函数main&#39;:       F:\ Users \ ROOT \ Documents \ codeblock \ gfffnewaa \ main.c | 15 | undefined reference togtk_init_abi_check&#39; |   F:\用户\ ROOT \文档\代码块\ gfffnewaa \ main.c中| 17 |未定义   引用gtk_window_new&#39; |       F:\ Users \ ROOT \ Documents \ codeblock \ gfffnewaa \ main.c | 18 |未定义引用togtk_window_get_type&#39; |   F:\用户\ ROOT \文档\代码块\ gfffnewaa \ main.c中| 18 |未定义   参考g_type_check_instance_cast&#39; |       F:\ Users \ ROOT \ Documents \ codeblock \ gfffnewaa \ main.c | 18 | undefined reference togtk_window_set_position&#39; |   F:\用户\ ROOT \文档\代码块\ gfffnewaa \ main.c中| 19 |未定义   引用gtk_window_get_type&#39; |       F:\ Users \ ROOT \ Documents \ codeblock \ gfffnewaa \ main.c | 19 |未定义引用tog_type_check_instance_cast&#39; |   F:\用户\ ROOT \文档\代码块\ gfffnewaa \ main.c中| 19 |未定义   引用gtk_window_set_default_size&#39; |       F:\ Users \ ROOT \ Documents \ codeblock \ gfffnewaa \ main.c | 20 | undefined reference togtk_window_get_type&#39; |   F:\用户\ ROOT \文档\代码块\ gfffnewaa \ main.c中| 20 |未定义   参考g_type_check_instance_cast&#39;

我非常沮丧和困惑?我该如何解决这个问题?

  

错误未定义参考

     

|| === gfffnewaa,Debug === | obj \ Debug \ main.o ||在函数main&#39;:   F:\用户\ ROOT \文档\代码块\ gfffnewaa \ main.c中| 15 |未定义   参考togtk_init_abi_check&#39; |   F:\用户\ ROOT \文档\代码块\ gfffnewaa \ main.c中| 17 |未定义   引用gtk_window_new&#39; |   F:\用户\ ROOT \文档\代码块\ gfffnewaa \ main.c中| 18 |未定义   引用togtk_window_get_type&#39; |   F:\用户\ ROOT \文档\代码块\ gfffnewaa \ main.c中| 18 |未定义   参考g_type_check_instance_cast&#39; |   F:\用户\ ROOT \文档\代码块\ gfffnewaa \ main.c中| 18 |未定义   引用togtk_window_set_position&#39; |   F:\用户\ ROOT \文档\代码块\ gfffnewaa \ main.c中| 19 |未定义   引用gtk_window_get_type&#39; |   F:\用户\ ROOT \文档\代码块\ gfffnewaa \ main.c中| 19 |未定义   引用tog_type_check_instance_cast&#39; |   F:\用户\ ROOT \文档\代码块\ gfffnewaa \ main.c中| 19 |未定义   引用gtk_window_set_default_size&#39; |   F:\用户\ ROOT \文档\代码块\ gfffnewaa \ main.c中| 20 |未定义   引用togtk_window_get_type&#39; |   F:\用户\ ROOT \文档\代码块\ gfffnewaa \ main.c中| 20 |未定义   参考g_type_check_instance_cast&#39; |   F:\用户\ ROOT \文档\代码块\ gfffnewaa \ main.c中| 20 |未定义   引用togtk_window_set_title&#39; |   F:\用户\ ROOT \文档\代码块\ gfffnewaa \ main.c中| 22 |未定义   参考gtk_vbox_new&#39; |   F:\用户\ ROOT \文档\代码块\ gfffnewaa \ main.c中| 23 |未定义   引用togtk_container_get_type&#39; |   F:\用户\ ROOT \文档\代码块\ gfffnewaa \ main.c中| 23 |未定义   参考g_type_check_instance_cast&#39; |   F:\用户\ ROOT \文档\代码块\ gfffnewaa \ main.c中| 23 |未定义   引用togtk_container_add&#39; |   F:\用户\ ROOT \文档\代码块\ gfffnewaa \ main.c中| 25 |未定义   参考gtk_menu_bar_new&#39; |   F:\用户\ ROOT \文档\代码块\ gfffnewaa \ main.c中| 26 |未定义   参考togtk_menu_new&#39; |   F:\用户\ ROOT \文档\代码块\ gfffnewaa \ main.c中| 28 |未定义   参考gtk_menu_item_new_with_label&#39; |   F:\用户\ ROOT \文档\代码块\ gfffnewaa \ main.c中| 29 |未定义   参考togtk_menu_item_new_with_label&#39; |   F:\用户\ ROOT \文档\代码块\ gfffnewaa \ main.c中| 31 |未定义   参考gtk_menu_item_get_type&#39; |   F:\用户\ ROOT \文档\代码块\ gfffnewaa \ main.c中| 31 |未定义   引用tog_type_check_instance_cast&#39; |   F:\用户\ ROOT \文档\代码块\ gfffnewaa \ main.c中| 31 |未定义   参考gtk_menu_item_set_submenu&#39; |   F:\用户\ ROOT \文档\代码块\ gfffnewaa \ main.c中| 32 |未定义   引用togtk_menu_shell_get_type&#39; |   F:\用户\ ROOT \文档\代码块\ gfffnewaa \ main.c中| 32 |未定义   参考g_type_check_instance_cast&#39; |   F:\用户\ ROOT \文档\代码块\ gfffnewaa \ main.c中| 32 |未定义   引用togtk_menu_shell_append&#39; |   F:\用户\ ROOT \文档\代码块\ gfffnewaa \ main.c中| 33 |未定义   参考gtk_menu_shell_get_type&#39; |   F:\用户\ ROOT \文档\代码块\ gfffnewaa \ main.c中| 33 |未定义   引用tog_type_check_instance_cast&#39; |   F:\用户\ ROOT \文档\代码块\ gfffnewaa \ main.c中| 33 |未定义   参考gtk_menu_shell_append&#39; |   F:\用户\ ROOT \文档\代码块\ gfffnewaa \ main.c中| 34 |未定义   引用togtk_box_get_type&#39; |   F:\用户\ ROOT \文档\代码块\ gfffnewaa \ main.c中| 34 |未定义   参考g_type_check_instance_cast&#39; |   F:\用户\ ROOT \文档\代码块\ gfffnewaa \ main.c中| 34 |未定义   引用togtk_box_pack_start&#39; |   F:\用户\ ROOT \文档\代码块\ gfffnewaa \ main.c中| 36 |未定义   参考g_type_check_instance_cast&#39; |   F:\用户\ ROOT \文档\代码块\ gfffnewaa \ main.c中| 36 |未定义   引用togtk_main_quit&#39; |   F:\用户\ ROOT \文档\代码块\ gfffnewaa \ main.c中| 36 |未定义   参考g_signal_connect_data&#39; |   F:\用户\ ROOT \文档\代码块\ gfffnewaa \ main.c中| 39 |未定义   引用tog_type_check_instance_cast&#39; |   F:\用户\ ROOT \文档\代码块\ gfffnewaa \ main.c中| 39 |未定义   参考gtk_main_quit&#39; |   F:\用户\ ROOT \文档\代码块\ gfffnewaa \ main.c中| 39 |未定义   参考tog_signal_connect_data&#39; |   F:\用户\ ROOT \文档\代码块\ gfffnewaa \ main.c中| 42 |未定义   参考gtk_widget_show_all&#39; |   F:\用户\ ROOT \文档\代码块\ gfffnewaa \ main.c中| 44 |未定义   引用togtk_main&#39; | || ===构建完成:39个错误,0个警告(0   分钟,1秒)=== |

2 个答案:

答案 0 :(得分:0)

要编译GTK +应用程序,您需要告诉编译器在哪里可以找到GTK +头文件和库。这是通过pkg-config实用程序完成的。

对于头文件,您需要在codeblock选项中添加以下构建选项。

 pkg-config --cflags gtk+-3.0

enter image description here

对于库,您需要在codeblock选项中添加以下构建选项。

 pkg-config --libs gtk+-3.0

enter image description here

请完成它会对你有帮助。

答案 1 :(得分:0)

我的问题是我使用 gtk x64 ,但代码块可以使用 gtk x86

现在我使用 gtkx86和codeblock x86 它很好用。 有时候现在有错误,只有我们感到困惑......