
sudo apt-get install vim #使用vim来编写代码,当然您可以使用任何自己喜欢的编辑器
sudo apt-get install build-essential #这将安装gcc/g++/gdb/make 等基本编程工具
sudo apt-get install gnome-core-devel #这将安装 libgtk2.0-dev libglib2.0-dev 等开发相关的库文件
sudo apt-get install pkg-config #用于在编译GTK程序时自动找出头文件及库文件位置
sudo apt-get install devhelp #这将安装 devhelp GTK文档查看程序
sudo apt-get install libglib2.0-doc libgtk2.0-doc #这将安装 gtk/glib 的API参考手册及其它帮助文档
sudo apt-get instal glade libglade2-dev #这将安装基于GTK的界面GTK是开发Gnome窗口的c/c++语言图形库。在Ubuntu的机器上折腾了一下,复制了网上教程的代码在本机上编译。代码的文件名:t1.c。按照教程,用以下命令编译:
gcc t1.c 'pkg-config --cflags --libs gtk+-2.0`
编译结果:找不到gtk/gtk.h。
因为我的Ubuntu是Gnome系统,所以我以为gtk+2.0的开发程序(头文件和库文件)应该已经安装在计算机上了。其实不然,如果在Ubuntu 上开发gtk+2.0的程序,需要安装相应的头文件和库。在控制台窗口输入sudo apt-get install libgtk2.0*, gtk+2.0所需的所有文件统通下载安装完毕。再次应用编译命令:gcc t1.c 'pkg-config --cflags --libs gtk+-2.0,编译通过,运行。
pkg-config是一个用来管理包的程序,在控制台输入 pkg-config --cflags --libs gtk+-2.0 的运行结果:
-DPNG_NO_MMX_CODE -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/freetype2 -I/usr/include/libpng12 -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangocairo-1.0 -lfontconfig -lXext -lXrender -lXinerama -lXi -lXrandr -lXcursor -lXcomposite -lXdamage -lpango-1.0 -lcairo -lX11 -lXfixes -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0
可以看出,输出的文本包括了gcc编译gtk+2.0所需要的所有选项(头文件目录和库文件)。
这里有一点需要注意, gcc t1.c `pkg-config --cflags --libs gtk+-2.0`, pkg-config --cflags --libs gtk+-2.0两侧的引号并不是真正的引号,而是键盘数字件那一行,最左边的那个字符。如果错用了单引号,gcc无法使用 pkg-config --cflags --libs gtk+-2.0产生的文本作为编译选项。构造程序。
$ gcc gtkhello.c -o gtktest `pkg-config --cflags --libs gtk+-2.0`
$ ./gtktest
gcc gtk1.c `pkg-config --cflags --libs gtk+-2.0`
//////////////////////////////////////////////////////////////////////////////////////////////////////
首先获得超级用户权限
apt-get install vim #使用vim来编写代码,当然您可以使用任何自己喜欢的编辑器
apt-get install build-essential #这将安装gcc/g++/gdb/make 等基本编程工具
apt-get install gnome-core-devel #这将安装 libgtk2.0-dev libglib2.0-dev 等开发相关的库文件
apt-get install pkg-config#用于在编译GTK程序时自动找出头文件及库文件位置
apt-get install devhelp#这将安装 devhelp GTK文档查看程序
apt-get install libglib2.0-doc libgtk2.0-doc #这将安装 gtk/glib 的API参考手册及其它帮助文档
apt-get instal glade libglade2-dev #这将安装基于GTK的界面构造程序
都是安装好后测试一下程序hello.c
#include <gtk/gtk.h>----------我编译时老是说找不到头文件,后来在/usr/include里找到gtk-2.0/gtk/gtk.h,原来是路径错误,最后将头文件路径修改为<gtk-2.0/gtk/gtk.h>,终于好了!
void hello(GtkWidget *widget,gpointer data)
{
g_print("Hello 大家好\n")
}
gint delete_event(GtkWidget *widget,GdkEvent *event,gpointer data)
{
g_print ("delete event occurred\n")
return(TRUE)
}
void destroy(GtkWidget *widget,gpointer data)
{
gtk_main_quit()
}
int main( int argc, char *argv[] )
{
GtkWidget *window
GtkWidget *button
gtk_init (&argc, &argv)
window=gtk_window_new (GTK_WINDOW_TOPLEVEL)
gtk_signal_connect (GTK_OBJECT(window),"delete_event",GTK_SIGNAL_FUNC(delete_event),NULL)
gtk_signal_connect (GTK_OBJECT (window), "destroy",GTK_SIGNAL_FUNC (destroy), NULL)
gtk_container_set_border_width (GTK_CONTAINER (window), 10)
button = gtk_button_new_with_label ("Hello 大家好")
gtk_signal_connect (GTK_OBJECT (button), "clicked",GTK_SIGNAL_FUNC (hello), NULL)
gtk_signal_connect_object (GTK_OBJECT (button), "clicked",GTK_SIGNAL_FUNC(gtk_widget_destroy),GTK_OBJECT (window))
gtk_container_add (GTK_CONTAINER (window), button)
gtk_widget_show (button)
gtk_widget_show (window)/*显示一个窗口*/
gtk_main()/*进入主循环*/
return(0)
}
最后编译运行:
$ gcc hello.c -o hello `pkg-config --cflags --libs gtk+-2.0`
$ . /hello
////////////////////////////////////////////////////////////////////
GTK的安装
sudo apt-get install vim #使用vim来编写代码,当然您可以使用任何自己喜欢的编辑器
sudo apt-get install build-essential #这将安装gcc/g++/gdb/make 等基本编程工具
sudo apt-get install gnome-core-devel #这将安装 libgtk2.0-dev libglib2.0-dev 等开发相关的库文件
sudo apt-get install pkg-config #用于在编译GTK程序时自动找出头文件及库文件位置
sudo apt-get install devhelp #这将安装 devhelp GTK文档查看程序
sudo apt-get install libglib2.0-doc libgtk2.0-doc #这将安装 gtk/glib 的API参考手册及其它帮助文档
sudo apt-get instal glade libglade2-dev #这将安装基于GTK的界面GTK是开发Gnome窗口的c/c++语言图形库。在Ubuntu的机器上折腾了一下,复制了网上教程的代码在本机上编译。代码的文件名:t1.c。按照教程,用以下命令编译:
gcc t1.c 'pkg-config --cflags --libs gtk+-2.0`
编译结果:找不到gtk/gtk.h。
因为我的Ubuntu是Gnome系统,所以我以为gtk+2.0的开发程序(头文件和库文件)应该已经安装在计算机上了。其实不然,如果在Ubuntu 上开发gtk+2.0的程序,需要安装相应的头文件和库。在控制台窗口输入sudo apt-get install libgtk2.0*, gtk+2.0所需的所有文件统通下载安装完毕。再次应用编译命令:gcc t1.c 'pkg-config --cflags --libs gtk+-2.0,编译通过,运行。
pkg-config是一个用来管理包的程序,在控制台输入 pkg-config --cflags --libs gtk+-2.0 的运行结果:
-DPNG_NO_MMX_CODE -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/freetype2 -I/usr/include/libpng12 -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangocairo-1.0 -lfontconfig -lXext -lXrender -lXinerama -lXi -lXrandr -lXcursor -lXcomposite -lXdamage -lpango-1.0 -lcairo -lX11 -lXfixes -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0
可以看出,输出的文本包括了gcc编译gtk+2.0所需要的所有选项(头文件目录和库文件)。
这里有一点需要注意, gcc t1.c `pkg-config --cflags --libs gtk+-2.0`, pkg-config --cflags --libs gtk+-2.0两侧的引号并不是真正的引号,而是键盘数字件那一行,最左边的那个字符。如果错用了单引号,gcc无法使用 pkg-config --cflags --libs gtk+-2.0产生的文本作为编译选项。构造程序。
$ gcc gtkhello.c -o gtktest `pkg-config --cflags --libs gtk+-2.0`
$ ./gtktest
gcc gtk1.c `pkg-config --cflags --libs gtk+-2.0`
首先当然是下载需要的文件,如果不算Dev-Cpp的的话只要两个文件,一个运行支持库文件和一个开发包。分别是gtk2-runtime-2.12.11-2008-07-25-ash.exe,gtk+-bundle-2.12.11.zip
安装gtk2-runtime这个程序,一切默认juice可以了,然后解压gtk+bundle到你想要的目录,我放在根目录。
打开cmd,切换到根目录的bin目录下,运行pkg-config --cflags gtk+-2.0,得到
-mms-bitfields -IG:/include/gtk-2.0 -IG:/lib/gtk-2.0/include -IG:/include/atk-1.
0 -IG:/include/cairo -IG:/include/pango-1.0 -IG:/include/glib-2.0 -IG:/lib/glib-
2.0/include -IG:/include/libpng12
这个回显根据你的目录不同而不同,所以不要直接复制哦!不要关cmd,还要执行一个命令!
打开dev-cpp-》工具-》编译选项 在 编译器选项卡 中的 在编译时加入以下命令
中填入上面得到的内容。
在cmd中执行pkg-config --libs gtk+-2.0,得到如下回显:
-LG:/lib -lgtk-win32-2.0 -lgdk-win32-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lpangowin32-1.0 -lgdi32 -lpangocairo-1.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -lglib-2.0 -lintl
把这个回显内容填入下面的 在连接器命令行填入以下命令。
然后在 目录选项卡中的 库,C包含文件,C++包含文件中添加解压的gtk+-bundle文件释放的Lib,Include,目录下的各种目录!
可以project->Set Active Config,选中release版本,此后,按F5或F7编译所得的结果就是release版本。 Debug版本包括调试信息,所以要比Release版本大很多(可能大数百K至数M)。 至于是否需要DLL支持,主要看你采用的编译选项。如果是基于ATL的欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)