Windows和Ubuntu11.10在Eclipse中配置C和GTK

来源:互联网 发布:java 配置文件冲突 编辑:程序博客网 时间:2024/06/05 05:10

        为了在Eclipse下编译使用GTKC程序,折腾了好久。查了许多资料,发现网上的绝大部分方法都不行。不知道我是太“走运”了还是怎么回事。折腾了几个小时后,终于分别在Windows下和Ubuntu下都搭建成功了gtk环境。这里就把我的经历写下来。也方便其他人参考。

        感谢CSDN上的linwhwylb,虽然他只回答了我六个字母两个汉字加一个符号,但他解决了我的主要问题。

Ubuntu下在Eclipse中运行C语言的GTK程序

1、下载相关的包

        sudo apt-get install gnome-core-devel build-essential libgtk2.0-dev libgtk2.0-doc
2、测试代码
        打开Eclipse,新建——C Project——输入Project name,并选择Executable中的Hello World ANSI C Project,默认会选择Linux GCCToolchains,点击Finish——这时会打开一个Hello World的示例代码——将其中哦功能的代码换成下面的测试代码。(其实完全可以不用Hello World模版,这里只是简化过程。)
#include <gtk/gtk.h> int main( int argc, char *argv[] ){         GtkWidget *window;        gtk_init (&argc, &argv);        window = gtk_window_new (GTK_WINDOW_TOPLEVEL);        gtk_widget_show (window);        gtk_main ();        return 0; }
3、配置Eclipse  
        (1)选中gtk项目,在菜单栏点击Project——Properties——C/C++ Build——Settings——GCC C Compiler——Miscellaneous,在Other flags中加入`pkg-config –cflags gtk+-2.0`
        (2)在同一个对话框中,选择GCC C Linker——Miscellaneous,在Linker flags中加入`pkg-config –libs gtk+-2.0`
        (3)选中GCC C Linker,在右边的Command line pattern里面的${INPUTS} 调到${COMMAND}后面,如:        ${COMMAND}  ${INPUTS} ${FLAGS} ${OUTPUT_FLAG}${OUTPUT_PREFIX}${OUTPUT}
        (4)GCC C Compiler——Includes中,加入/usr/include/gtk-2.0 /usr/include/glib-2.0,可以消除gtk.h unresolved的警告,同时在程序中使用gtk的函数,会出现智能提示。
        经过以上步骤,一个GTK程序就能运行出来了。
Windows下在Eclipse中运行C语言的GTK程序
1、安装并配置gtk
        (1)下载windows下用的gtk包,地址为http://ftp.gnome.org/pub/gnome/binaries/win32/gtk+/2.24/gtk+-bundle_2.24.8-20111122_win32.zip,点击直接下载,不放心的话可以将地址拷到浏览器地址栏下载。
        (2)将下载后的gtk+-bundle_2.24.8-20111122_win32.zip解压,并将解压后的文件夹更名为gtk,比如放到C盘中:C:\gtk
        (3)添加环境变量:我的电脑/计算机——右击,属性——在弹出的界面中选右边的高级选项——选择环境变量——在对话框的下面选择PATH项——双击,添加C:\gtk\bin,注意以分号分割不同的变量。
        (4)点开始,输入cmd,打开命令行,输入pkg-config --cflags gtk+-2.0+,回车,会出现一堆目录名,如下:
-mms-bitfields -Ic:/gtk/include/gtk-2.0 -Ic:/gtk/lib/gtk-2.0/include -Ic:/gtk/include/atk-1.0 -Ic:/gtk/include/cairo -Ic:/gtk/include/gdk-pixbuf-2.0 -Ic:/gtk/include/pango-1.0 -Ic:/gtk/include/glib-2.0 -Ic:/gtk/lib/glib-2.0/include -Ic:/gtk/include -Ic:/gtk/include/freetype2 -Ic:/gtk/include/libpng14 
        (5)继续在cmd窗口中输入pkg-config --libs gtk+-2.0,回车,出现另一堆目录:
-Lc:/gtk/lib -lgtk-win32-2.0 -lgdk-win32-2.0 -latk-1.0 -lgio-2.0 -lpangowin32-1.0 -lgdi32 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lglib-2.0 -lintl
2C语言的gtk模版程序
        打开Eclipse,新建C项目的Hello World,并换成gtk的模版,如上一节的第二小节一样。
3、在Eclipse中,选中gtk的项目 
        (1)选中gtk项目,在菜单栏点击Project——Properties——C/C++ Build——Settings——GCC C Compiler——Miscellaneous,在Other flags中加入在命令行中输入`pkg-config –cflags gtk+-2.0`得到的内容。可以用鼠标在cmd窗口复制得到;
        (2)在同一个对话框中,选择MinGW C Linker——Miscellaneous,在Linker flags中加入在命令行中输入`pkg-config –libs gtk+-2.0`得到的内容;
        (3)选中MinGW C Linker,在右边的Command line pattern里面的${INPUTS} 调到${COMMAND}后面,如:
        ${COMMAND}  ${INPUTS} ${FLAGS} ${OUTPUT_FLAG}${OUTPUT_PREFIX}${OUTPUT}
        (4)GCC C Compiler——Includes中,加入C:\gtk\include\gtk-2.0等(具体取决于你将gtk解压到哪,以及解压后的文件名),可以消除gtk.h unresolved的警告,同时在程序中使用gtk的函数,会出现智能提示。
        经过以上步骤,一个GTK程序就能运行出来了。至于为什么不能像在Ubuntu中直接使用`pkg-config –libs gtk+-2.0`等作为Miscellaneous的参数,我也没找到合理的解释,如果谁能解答,请告诉大家,谢谢。
原创粉丝点击