codeblocks下gtk环境配置问题求解

teardrop 2014-01-09 08:02:25
本人在linux下ubuntu已经配置好了codeblocks和gtk2,先需要在win下跨平台,所以要在win下安装codeblocks并配置gtk2.
系统是:win7 64位GHOST版
C:B下载了:codeblocks-13.12mingw-setup.exe
gtk+下载了:gtk+-bundle_2.22.1-20101229_win64,64位

安装C:B之后,将gtk解压到D盘resource目录下。设置环境变量D:\resource\gtk+\bin。`pkg-config --cflags gtk+-2.0`可以得到结果。同时gtk-demo也可以执行。然后打开C:B,新建gtk工程,设置位置,OK,设置Global variety,搞定。然后编译的过程中出现问题如下:
||=== Build: Debug in newgtk (compiler: GNU GCC Compiler) ===|
obj\Debug\main.o||In function `helloWorld':|
D:\CB\newgtk\main.c|8|undefined reference to `gtk_window_get_type'|
D:\CB\newgtk\main.c|8|undefined reference to `g_type_check_instance_cast'|
D:\CB\newgtk\main.c|8|undefined reference to `gtk_message_dialog_new'|
D:\CB\newgtk\main.c|9|undefined reference to `gtk_window_get_type'|
D:\CB\newgtk\main.c|9|undefined reference to `g_type_check_instance_cast'|
D:\CB\newgtk\main.c|9|undefined reference to `gtk_window_set_position'|
D:\CB\newgtk\main.c|10|undefined reference to `gtk_dialog_get_type'|
D:\CB\newgtk\main.c|10|undefined reference to `g_type_check_instance_cast'|
D:\CB\newgtk\main.c|10|undefined reference to `gtk_dialog_run'|
D:\CB\newgtk\main.c|11|undefined reference to `gtk_widget_destroy'|
obj\Debug\main.o||In function `main':|
D:\CB\newgtk\main.c|21|undefined reference to `gtk_false'|
D:\CB\newgtk\main.c|21|undefined reference to `g_log_set_handler'|
D:\CB\newgtk\main.c|22|undefined reference to `gtk_init_abi_check'|
D:\CB\newgtk\main.c|23|undefined reference to `g_log_default_handler'|
D:\CB\newgtk\main.c|23|undefined reference to `g_log_set_handler'|
D:\CB\newgtk\main.c|26|undefined reference to `gtk_window_new'|
D:\CB\newgtk\main.c|27|undefined reference to `gtk_container_get_type'|
D:\CB\newgtk\main.c|27|undefined reference to `g_type_check_instance_cast'|
D:\CB\newgtk\main.c|27|undefined reference to `gtk_container_set_border_width'|
D:\CB\newgtk\main.c|28|undefined reference to `gtk_window_get_type'|
D:\CB\newgtk\main.c|28|undefined reference to `g_type_check_instance_cast'|
D:\CB\newgtk\main.c|28|undefined reference to `gtk_window_set_title'|
D:\CB\newgtk\main.c|29|undefined reference to `gtk_window_get_type'|
D:\CB\newgtk\main.c|29|undefined reference to `g_type_check_instance_cast'|
D:\CB\newgtk\main.c|29|undefined reference to `gtk_window_set_position'|
D:\CB\newgtk\main.c|30|undefined reference to `gtk_widget_realize'|
D:\CB\newgtk\main.c|31|undefined reference to `gtk_main_quit'|
D:\CB\newgtk\main.c|31|undefined reference to `g_signal_connect_data'|
D:\CB\newgtk\main.c|34|undefined reference to `gtk_vbox_new'|
D:\CB\newgtk\main.c|35|undefined reference to `gtk_container_get_type'|
D:\CB\newgtk\main.c|35|undefined reference to `g_type_check_instance_cast'|
D:\CB\newgtk\main.c|35|undefined reference to `gtk_container_add'|
D:\CB\newgtk\main.c|37|undefined reference to `gtk_button_new_from_stock'|
D:\CB\newgtk\main.c|38|undefined reference to `g_type_check_instance_cast'|
D:\CB\newgtk\main.c|38|undefined reference to `g_signal_connect_data'|
D:\CB\newgtk\main.c|39|undefined reference to `gtk_box_get_type'|
D:\CB\newgtk\main.c|39|undefined reference to `g_type_check_instance_cast'|
D:\CB\newgtk\main.c|39|undefined reference to `gtk_box_pack_start'|
D:\CB\newgtk\main.c|41|undefined reference to `gtk_button_new_from_stock'|
D:\CB\newgtk\main.c|42|undefined reference to `gtk_main_quit'|
D:\CB\newgtk\main.c|42|undefined reference to `g_signal_connect_data'|
D:\CB\newgtk\main.c|43|undefined reference to `gtk_box_get_type'|
D:\CB\newgtk\main.c|43|undefined reference to `g_type_check_instance_cast'|
D:\CB\newgtk\main.c|43|undefined reference to `gtk_box_pack_start'|
D:\CB\newgtk\main.c|46|undefined reference to `gtk_widget_show_all'|
D:\CB\newgtk\main.c|47|undefined reference to `gtk_main'|
||=== Build failed: 46 error(s), 0 warning(s) (0 minute(s), 1 second(s)) ===|


自己google了一下,好像说是链接出现了问题,然后也在link中手动加入头文件,可还是不行,所以求各位帮忙。谢谢了!
...全文
227 点赞 收藏 7
写回复
7 条回复
hustcodefarm 2014年08月12日
顶一下楼上,注意换成32位的就可以啦!!!!!!!!!!!!!!!!!!!! 帮了大忙啦
回复 点赞
DoomRolland 2014年07月15日
我刚刚解决了。把GTK换成了32位。原来下的64位的。
回复 点赞
DoomRolland 2014年07月15日
你好,请问这个问题解决了吗。我好像遇到的也是这个问题。怎么都找不到函数。
引用 4 楼 zdw2619963 的回复:
我已经尝试pkg-config --cflags gtk+-2.0;pkg-config --libs gtk+-2.0,将头文件和库文件直接设置到编译器中,但问题还在,还是编译不通过。。。
回复 点赞
teardrop 2014年01月09日
我已经尝试pkg-config --cflags gtk+-2.0;pkg-config --libs gtk+-2.0,将头文件和库文件直接设置到编译器中,但问题还在,还是编译不通过。。。
回复 点赞
jiandingzhe 2014年01月09日
没怎么用过codeblocks。但是codeblocks好像不用pkg-config系统。你得人为把gtk所有的库文件加到链接里去。 你设置的似乎只是查找目录,意思应当是找库的时候会找这些目录。而不是要链接哪些库。
回复 点赞
teardrop 2014年01月09日
@turingo,具体要怎么操作,我已经设置lib的时候指定了lib:D:\resource\gtk+\lib
回复 点赞
图灵狗 2014年01月09日
把gtk2的lib都加进去。
引用 楼主 zdw2619963 的回复:
本人在linux下ubuntu已经配置好了codeblocks和gtk2,先需要在win下跨平台,所以要在win下安装codeblocks并配置gtk2. 系统是:win7 64位GHOST版 C:B下载了:codeblocks-13.12mingw-setup.exe gtk+下载了:gtk+-bundle_2.22.1-20101229_win64,64位 安装C:B之后,将gtk解压到D盘resource目录下。设置环境变量D:\resource\gtk+\bin。`pkg-config --cflags gtk+-2.0`可以得到结果。同时gtk-demo也可以执行。然后打开C:B,新建gtk工程,设置位置,OK,设置Global variety,搞定。然后编译的过程中出现问题如下:
||=== Build: Debug in newgtk (compiler: GNU GCC Compiler) ===|
obj\Debug\main.o||In function `helloWorld':|
D:\CB\newgtk\main.c|8|undefined reference to `gtk_window_get_type'|
D:\CB\newgtk\main.c|8|undefined reference to `g_type_check_instance_cast'|
D:\CB\newgtk\main.c|8|undefined reference to `gtk_message_dialog_new'|
D:\CB\newgtk\main.c|9|undefined reference to `gtk_window_get_type'|
D:\CB\newgtk\main.c|9|undefined reference to `g_type_check_instance_cast'|
D:\CB\newgtk\main.c|9|undefined reference to `gtk_window_set_position'|
D:\CB\newgtk\main.c|10|undefined reference to `gtk_dialog_get_type'|
D:\CB\newgtk\main.c|10|undefined reference to `g_type_check_instance_cast'|
D:\CB\newgtk\main.c|10|undefined reference to `gtk_dialog_run'|
D:\CB\newgtk\main.c|11|undefined reference to `gtk_widget_destroy'|
obj\Debug\main.o||In function `main':|
D:\CB\newgtk\main.c|21|undefined reference to `gtk_false'|
D:\CB\newgtk\main.c|21|undefined reference to `g_log_set_handler'|
D:\CB\newgtk\main.c|22|undefined reference to `gtk_init_abi_check'|
D:\CB\newgtk\main.c|23|undefined reference to `g_log_default_handler'|
D:\CB\newgtk\main.c|23|undefined reference to `g_log_set_handler'|
D:\CB\newgtk\main.c|26|undefined reference to `gtk_window_new'|
D:\CB\newgtk\main.c|27|undefined reference to `gtk_container_get_type'|
D:\CB\newgtk\main.c|27|undefined reference to `g_type_check_instance_cast'|
D:\CB\newgtk\main.c|27|undefined reference to `gtk_container_set_border_width'|
D:\CB\newgtk\main.c|28|undefined reference to `gtk_window_get_type'|
D:\CB\newgtk\main.c|28|undefined reference to `g_type_check_instance_cast'|
D:\CB\newgtk\main.c|28|undefined reference to `gtk_window_set_title'|
D:\CB\newgtk\main.c|29|undefined reference to `gtk_window_get_type'|
D:\CB\newgtk\main.c|29|undefined reference to `g_type_check_instance_cast'|
D:\CB\newgtk\main.c|29|undefined reference to `gtk_window_set_position'|
D:\CB\newgtk\main.c|30|undefined reference to `gtk_widget_realize'|
D:\CB\newgtk\main.c|31|undefined reference to `gtk_main_quit'|
D:\CB\newgtk\main.c|31|undefined reference to `g_signal_connect_data'|
D:\CB\newgtk\main.c|34|undefined reference to `gtk_vbox_new'|
D:\CB\newgtk\main.c|35|undefined reference to `gtk_container_get_type'|
D:\CB\newgtk\main.c|35|undefined reference to `g_type_check_instance_cast'|
D:\CB\newgtk\main.c|35|undefined reference to `gtk_container_add'|
D:\CB\newgtk\main.c|37|undefined reference to `gtk_button_new_from_stock'|
D:\CB\newgtk\main.c|38|undefined reference to `g_type_check_instance_cast'|
D:\CB\newgtk\main.c|38|undefined reference to `g_signal_connect_data'|
D:\CB\newgtk\main.c|39|undefined reference to `gtk_box_get_type'|
D:\CB\newgtk\main.c|39|undefined reference to `g_type_check_instance_cast'|
D:\CB\newgtk\main.c|39|undefined reference to `gtk_box_pack_start'|
D:\CB\newgtk\main.c|41|undefined reference to `gtk_button_new_from_stock'|
D:\CB\newgtk\main.c|42|undefined reference to `gtk_main_quit'|
D:\CB\newgtk\main.c|42|undefined reference to `g_signal_connect_data'|
D:\CB\newgtk\main.c|43|undefined reference to `gtk_box_get_type'|
D:\CB\newgtk\main.c|43|undefined reference to `g_type_check_instance_cast'|
D:\CB\newgtk\main.c|43|undefined reference to `gtk_box_pack_start'|
D:\CB\newgtk\main.c|46|undefined reference to `gtk_widget_show_all'|
D:\CB\newgtk\main.c|47|undefined reference to `gtk_main'|
||=== Build failed: 46 error(s), 0 warning(s) (0 minute(s), 1 second(s)) ===|
自己google了一下,好像说是链接出现了问题,然后也在link中手动加入头文件,可还是不行,所以求各位帮忙。谢谢了!
回复 点赞
发动态
发帖子
工具平台和程序库
创建于2007-09-28

8235

社区成员

2.7w+

社区内容

C/C++ 工具平台和程序库
社区公告
暂无公告