[英]how to set up GTk 2 in codeblock
I want to setup gtk2 and i did: 我想设置gtk2,我做到了:
compiler option:pkg-config --cflags gtk+-2.0
likker option:pkg-config --libs gtk+-2.0
I added the path gtk2 to variable path and add gdk-pixbuff to a user variable but when i compile the code below; 我将路径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;
}
errors is not defined refrence 错误未定义
Error Log: 错误日志:
||=== gfffnewaa, Debug ===| || === gfffnewaa,调试=== | obj\\Debug\\main.o||In function main':| obj \\ Debug \\ main.o ||在函数main中:| F:\\Users\\ROOT\\Documents\\codeblock\\gfffnewaa\\main.c|15|undefined reference togtk_init_abi_check'| F:\\ Users \\ ROOT \\ Documents \\ codeblock \\ gfffnewaa \\ main.c | 15 |未定义对gtk_init_abi_check的引用'| F:\\Users\\ROOT\\Documents\\codeblock\\gfffnewaa\\main.c|17|undefined reference to gtk_window_new'| F:\\ Users \\ ROOT \\ Documents \\ codeblock \\ gfffnewaa \\ main.c | 17 |对gtk_window_new的未定义引用'| F:\\Users\\ROOT\\Documents\\codeblock\\gfffnewaa\\main.c|18|undefined reference togtk_window_get_type'| F:\\ Users \\ ROOT \\ Documents \\ codeblock \\ gfffnewaa \\ main.c | 18 |对gtk_window_get_type的未定义引用'| F:\\Users\\ROOT\\Documents\\codeblock\\gfffnewaa\\main.c|18|undefined reference to g_type_check_instance_cast'| F:\\ Users \\ ROOT \\ Documents \\ codeblock \\ gfffnewaa \\ main.c | 18 |对g_type_check_instance_cast的未定义引用'| F:\\Users\\ROOT\\Documents\\codeblock\\gfffnewaa\\main.c|18|undefined reference togtk_window_set_position'| F:\\ Users \\ ROOT \\ Documents \\ codeblock \\ gfffnewaa \\ main.c | 18 |对gtk_window_set_position的未定义引用'| F:\\Users\\ROOT\\Documents\\codeblock\\gfffnewaa\\main.c|19|undefined reference to gtk_window_get_type'| F:\\ Users \\ ROOT \\ Documents \\ codeblock \\ gfffnewaa \\ main.c | 19 |对gtk_window_get_type的未定义引用'| F:\\Users\\ROOT\\Documents\\codeblock\\gfffnewaa\\main.c|19|undefined reference tog_type_check_instance_cast'| F:\\ Users \\ ROOT \\ Documents \\ codeblock \\ gfffnewaa \\ main.c | 19 |未定义对g_type_check_instance_cast的引用'| F:\\Users\\ROOT\\Documents\\codeblock\\gfffnewaa\\main.c|19|undefined reference to gtk_window_set_default_size'| F:\\ Users \\ ROOT \\ Documents \\ codeblock \\ gfffnewaa \\ main.c | 19 |对gtk_window_set_default_size的未定义引用'| F:\\Users\\ROOT\\Documents\\codeblock\\gfffnewaa\\main.c|20|undefined reference togtk_window_get_type'| F:\\ Users \\ ROOT \\ Documents \\ codeblock \\ gfffnewaa \\ main.c | 20 |对gtk_window_get_type的未定义引用'| F:\\Users\\ROOT\\Documents\\codeblock\\gfffnewaa\\main.c|20|undefined reference to g_type_check_instance_cast' F:\\ Users \\ ROOT \\ Documents \\ codeblock \\ gfffnewaa \\ main.c | 20 |对g_type_check_instance_cast的未定义引用
I am very upset and confused? 我很沮丧和困惑吗? How do I solve this problem? 我该如何解决这个问题?
errors is not defined refrence 错误未定义
||=== gfffnewaa, Debug ===| || === gfffnewaa,调试=== | obj\\Debug\\main.o||In function main':| obj \\ Debug \\ main.o ||在函数main中:| F:\\Users\\ROOT\\Documents\\codeblock\\gfffnewaa\\main.c|15|undefined reference togtk_init_abi_check'| F:\\ Users \\ ROOT \\ Documents \\ codeblock \\ gfffnewaa \\ main.c | 15 |未定义对gtk_init_abi_check的引用'| F:\\Users\\ROOT\\Documents\\codeblock\\gfffnewaa\\main.c|17|undefined reference to gtk_window_new'| F:\\ Users \\ ROOT \\ Documents \\ codeblock \\ gfffnewaa \\ main.c | 17 |对gtk_window_new的未定义引用'| F:\\Users\\ROOT\\Documents\\codeblock\\gfffnewaa\\main.c|18|undefined reference togtk_window_get_type'| F:\\ Users \\ ROOT \\ Documents \\ codeblock \\ gfffnewaa \\ main.c | 18 |对gtk_window_get_type的未定义引用'| F:\\Users\\ROOT\\Documents\\codeblock\\gfffnewaa\\main.c|18|undefined reference to g_type_check_instance_cast'| F:\\ Users \\ ROOT \\ Documents \\ codeblock \\ gfffnewaa \\ main.c | 18 |对g_type_check_instance_cast的未定义引用'| F:\\Users\\ROOT\\Documents\\codeblock\\gfffnewaa\\main.c|18|undefined reference togtk_window_set_position'| F:\\ Users \\ ROOT \\ Documents \\ codeblock \\ gfffnewaa \\ main.c | 18 |对gtk_window_set_position的未定义引用'| F:\\Users\\ROOT\\Documents\\codeblock\\gfffnewaa\\main.c|19|undefined reference to gtk_window_get_type'| F:\\ Users \\ ROOT \\ Documents \\ codeblock \\ gfffnewaa \\ main.c | 19 |对gtk_window_get_type的未定义引用'| F:\\Users\\ROOT\\Documents\\codeblock\\gfffnewaa\\main.c|19|undefined reference tog_type_check_instance_cast'| F:\\ Users \\ ROOT \\ Documents \\ codeblock \\ gfffnewaa \\ main.c | 19 |未定义对g_type_check_instance_cast的引用'| F:\\Users\\ROOT\\Documents\\codeblock\\gfffnewaa\\main.c|19|undefined reference to gtk_window_set_default_size'| F:\\ Users \\ ROOT \\ Documents \\ codeblock \\ gfffnewaa \\ main.c | 19 |对gtk_window_set_default_size的未定义引用'| F:\\Users\\ROOT\\Documents\\codeblock\\gfffnewaa\\main.c|20|undefined reference togtk_window_get_type'| F:\\ Users \\ ROOT \\ Documents \\ codeblock \\ gfffnewaa \\ main.c | 20 |对gtk_window_get_type的未定义引用'| F:\\Users\\ROOT\\Documents\\codeblock\\gfffnewaa\\main.c|20|undefined reference to g_type_check_instance_cast'| F:\\ Users \\ ROOT \\ Documents \\ codeblock \\ gfffnewaa \\ main.c | 20 |对g_type_check_instance_cast的未定义引用'| F:\\Users\\ROOT\\Documents\\codeblock\\gfffnewaa\\main.c|20|undefined reference togtk_window_set_title'| F:\\ Users \\ ROOT \\ Documents \\ codeblock \\ gfffnewaa \\ main.c | 20 |对gtk_window_set_title的未定义引用'| F:\\Users\\ROOT\\Documents\\codeblock\\gfffnewaa\\main.c|22|undefined reference to gtk_vbox_new'| F:\\ Users \\ ROOT \\ Documents \\ codeblock \\ gfffnewaa \\ main.c | 22 |未定义对gtk_vbox_new的引用|| F:\\Users\\ROOT\\Documents\\codeblock\\gfffnewaa\\main.c|23|undefined reference togtk_container_get_type'| F:\\ Users \\ ROOT \\ Documents \\ codeblock \\ gfffnewaa \\ main.c | 23 |对gtk_container_get_type的未定义引用'| F:\\Users\\ROOT\\Documents\\codeblock\\gfffnewaa\\main.c|23|undefined reference to g_type_check_instance_cast'| F:\\ Users \\ ROOT \\ Documents \\ codeblock \\ gfffnewaa \\ main.c | 23 |对g_type_check_instance_cast的未定义引用'| F:\\Users\\ROOT\\Documents\\codeblock\\gfffnewaa\\main.c|23|undefined reference togtk_container_add'| F:\\ Users \\ ROOT \\ Documents \\ codeblock \\ gfffnewaa \\ main.c | 23 |对gtk_container_add的未定义引用'| F:\\Users\\ROOT\\Documents\\codeblock\\gfffnewaa\\main.c|25|undefined reference to gtk_menu_bar_new'| F:\\ Users \\ ROOT \\ Documents \\ codeblock \\ gfffnewaa \\ main.c | 25 |未定义对gtk_menu_bar_new的引用|| F:\\Users\\ROOT\\Documents\\codeblock\\gfffnewaa\\main.c|26|undefined reference togtk_menu_new'| F:\\ Users \\ ROOT \\ Documents \\ codeblock \\ gfffnewaa \\ main.c | 26 |对gtk_menu_new的未定义引用'| F:\\Users\\ROOT\\Documents\\codeblock\\gfffnewaa\\main.c|28|undefined reference to gtk_menu_item_new_with_label'| F:\\ Users \\ ROOT \\ Documents \\ codeblock \\ gfffnewaa \\ main.c | 28 |对gtk_menu_item_new_with_label的未定义引用'| F:\\Users\\ROOT\\Documents\\codeblock\\gfffnewaa\\main.c|29|undefined reference togtk_menu_item_new_with_label'| F:\\ Users \\ ROOT \\ Documents \\ codeblock \\ gfffnewaa \\ main.c | 29 |对gtk_menu_item_new_with_label的未定义引用'| F:\\Users\\ROOT\\Documents\\codeblock\\gfffnewaa\\main.c|31|undefined reference to gtk_menu_item_get_type'| F:\\ Users \\ ROOT \\ Documents \\ codeblock \\ gfffnewaa \\ main.c | 31 |对gtk_menu_item_get_type的未定义引用'| F:\\Users\\ROOT\\Documents\\codeblock\\gfffnewaa\\main.c|31|undefined reference tog_type_check_instance_cast'| F:\\ Users \\ ROOT \\ Documents \\ codeblock \\ gfffnewaa \\ main.c | 31 |未定义对g_type_check_instance_cast的引用'| F:\\Users\\ROOT\\Documents\\codeblock\\gfffnewaa\\main.c|31|undefined reference to gtk_menu_item_set_submenu'| F:\\ Users \\ ROOT \\ Documents \\ codeblock \\ gfffnewaa \\ main.c | 31 |未定义对gtk_menu_item_set_submenu的引用'| F:\\Users\\ROOT\\Documents\\codeblock\\gfffnewaa\\main.c|32|undefined reference togtk_menu_shell_get_type'| F:\\ Users \\ ROOT \\ Documents \\ codeblock \\ gfffnewaa \\ main.c | 32 |对gtk_menu_shell_get_type的未定义引用'| F:\\Users\\ROOT\\Documents\\codeblock\\gfffnewaa\\main.c|32|undefined reference to g_type_check_instance_cast'| F:\\ Users \\ ROOT \\ Documents \\ codeblock \\ gfffnewaa \\ main.c | 32 |对g_type_check_instance_cast的未定义引用'| F:\\Users\\ROOT\\Documents\\codeblock\\gfffnewaa\\main.c|32|undefined reference togtk_menu_shell_append'| F:\\ Users \\ ROOT \\ Documents \\ codeblock \\ gfffnewaa \\ main.c | 32 |未定义对gtk_menu_shell_append的引用'| F:\\Users\\ROOT\\Documents\\codeblock\\gfffnewaa\\main.c|33|undefined reference to gtk_menu_shell_get_type'| F:\\ Users \\ ROOT \\ Documents \\ codeblock \\ gfffnewaa \\ main.c | 33 |对gtk_menu_shell_get_type的未定义引用'| F:\\Users\\ROOT\\Documents\\codeblock\\gfffnewaa\\main.c|33|undefined reference tog_type_check_instance_cast'| F:\\ Users \\ ROOT \\ Documents \\ codeblock \\ gfffnewaa \\ main.c | 33 |未定义对g_type_check_instance_cast的引用'| F:\\Users\\ROOT\\Documents\\codeblock\\gfffnewaa\\main.c|33|undefined reference to gtk_menu_shell_append'| F:\\ Users \\ ROOT \\ Documents \\ codeblock \\ gfffnewaa \\ main.c | 33 |对gtk_menu_shell_append的未定义引用'| F:\\Users\\ROOT\\Documents\\codeblock\\gfffnewaa\\main.c|34|undefined reference togtk_box_get_type'| F:\\ Users \\ ROOT \\ Documents \\ codeblock \\ gfffnewaa \\ main.c | 34 |对gtk_box_get_type的未定义引用'| F:\\Users\\ROOT\\Documents\\codeblock\\gfffnewaa\\main.c|34|undefined reference to g_type_check_instance_cast'| F:\\ Users \\ ROOT \\ Documents \\ codeblock \\ gfffnewaa \\ main.c | 34 |对g_type_check_instance_cast的未定义引用'| F:\\Users\\ROOT\\Documents\\codeblock\\gfffnewaa\\main.c|34|undefined reference togtk_box_pack_start'| F:\\ Users \\ ROOT \\ Documents \\ codeblock \\ gfffnewaa \\ main.c | 34 |未定义对gtk_box_pack_start的引用'| F:\\Users\\ROOT\\Documents\\codeblock\\gfffnewaa\\main.c|36|undefined reference to g_type_check_instance_cast'| F:\\ Users \\ ROOT \\ Documents \\ codeblock \\ gfffnewaa \\ main.c | 36 |对g_type_check_instance_cast的未定义引用'| F:\\Users\\ROOT\\Documents\\codeblock\\gfffnewaa\\main.c|36|undefined reference togtk_main_quit'| F:\\ Users \\ ROOT \\ Documents \\ codeblock \\ gfffnewaa \\ main.c | 36 |对gtk_main_quit的未定义引用'| F:\\Users\\ROOT\\Documents\\codeblock\\gfffnewaa\\main.c|36|undefined reference to g_signal_connect_data'| F:\\ Users \\ ROOT \\ Documents \\ codeblock \\ gfffnewaa \\ main.c | 36 |对g_signal_connect_data的未定义引用'| F:\\Users\\ROOT\\Documents\\codeblock\\gfffnewaa\\main.c|39|undefined reference tog_type_check_instance_cast'| F:\\ Users \\ ROOT \\ Documents \\ codeblock \\ gfffnewaa \\ main.c | 39 |未定义对g_type_check_instance_cast的引用'| F:\\Users\\ROOT\\Documents\\codeblock\\gfffnewaa\\main.c|39|undefined reference to gtk_main_quit'| F:\\ Users \\ ROOT \\ Documents \\ codeblock \\ gfffnewaa \\ main.c | 39 |未定义对gtk_main_quit的引用'| F:\\Users\\ROOT\\Documents\\codeblock\\gfffnewaa\\main.c|39|undefined reference tog_signal_connect_data'| F:\\ Users \\ ROOT \\ Documents \\ codeblock \\ gfffnewaa \\ main.c | 39 |未定义对g_signal_connect_data的引用'| F:\\Users\\ROOT\\Documents\\codeblock\\gfffnewaa\\main.c|42|undefined reference to gtk_widget_show_all'| F:\\ Users \\ ROOT \\ Documents \\ codeblock \\ gfffnewaa \\ main.c | 42 |对gtk_widget_show_all的未定义引用|| F:\\Users\\ROOT\\Documents\\codeblock\\gfffnewaa\\main.c|44|undefined reference togtk_main'| F:\\ Users \\ ROOT \\ Documents \\ codeblock \\ gfffnewaa \\ main.c | 44 |对gtk_main的未定义引用'| ||=== Build finished: 39 errors, 0 warnings (0 minutes, 1 seconds) ===| || ===构建完成:39个错误,0个警告(0分钟,1秒)=== |
To compile a GTK+ application, you need to tell the compiler where to find the GTK+ header files and libraries. 要编译GTK +应用程序,您需要告诉编译器在哪里可以找到GTK +头文件和库。 This is done with the pkg-config utility. 这是通过pkg-config实用程序完成的。
for header file you need to add below build option in codeblock option. 对于头文件,您需要在codeblock选项中的build选项下方添加。
pkg-config --cflags gtk+-3.0
for library you need to add below build option in codeblock option. 对于库,您需要在codeblock选项中添加以下build选项。
pkg-config --libs gtk+-3.0
Please go through it would help you. 请通过它会帮助您。
my problem was that i used gtk x64 ,but codeblock work with gtk x86 我的问题是我使用了gtk x64 ,但是codeblock与gtk x86一起使用
now i use gtkx86 and codeblock x86 it works nice. 现在我使用gtkx86和codeblock x86 ,效果很好。 some times there is now errors,only we is confused... 有时现在有错误,只有我们感到困惑...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.