VS2010下配置GTK+2.0
来源:互联网 发布:绝地求生优化太垃圾了 编辑:程序博客网 时间:2024/04/28 10:47
利用GTK+开发的程序可以在多平台下运行,但在Windows下需要进行配置。
首先在官网http://www.gtk.org 中下载Windows 版本的all-in-onebundle.解压到D:\GTK 。将D:\GTK\bin添加入到PATH环境变量。将本文件夹下的gtkrc放入etc/gtk-2.0文件夹下,以使用MS-Windows主题。运行cmd,输入运行"pkg-config --cflags --libs gtk+-2.0",出现下图的输出表明之前的配置正确。
输入"gtk-demo"可以看一些例子。
输入"pkg-config --cflags --libs gtk+-2.0 >d:\a.txt", 会将上图中的输出写入到D盘a.txt文件中。在我的电脑中得到以下内容。
-mms-bitfields -ID:/GTK/include/gtk-2.0 -ID:/GTK/lib/gtk-2.0/include-ID:/GTK/include/atk-1.0 -ID:/GTK/include/cairo -ID:/GTK/include/gdk-pixbuf-2.0-ID:/GTK/include/pango-1.0 -ID:/GTK/include/glib-2.0-ID:/GTK/lib/glib-2.0/include -ID:/GTK/include -ID:/GTK/include/freetype2-ID:/GTK/include/libpng14 -LD:/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
其中以-I开头的是工程编译要包含的路径,以-L开头的是链接库名称。
打开VS2010,创建一个C++工程。点击菜单栏View下的Property Manager,出现下面的选项卡:
双击击上面的Microsoft.Cpp.Win32.user,出现以下窗口:
点击VC++ Directories,进行配置路径,点击Include Directories下的Edit添加头文件的路径。将上面得到的txt文档中以I开头的路径都添加进去,如下图所示:
点击OK。
同理添加库文件路径:库文件为txt文件中以-L开头的路径,我在这里只有D:/GTK/lib一项,如图所示:
点击ok,再添加依赖库文件。添加方法如下:
进行编辑,添加以下内容:
glib-2.0.lib
gtk-win32-2.0.lib
gdk-win32-2.0.lib
gobject-2.0.lib
gdk_pixbuf-2.0.lib
gthread-2.0.lib
gmodule-2.0.lib
pango-1.0.lib intl.lib
注意,一条一条分别加入,一条一行(一个回车),(注意行末不要加";")否则会出现类似以下错误:1>LINK : fatal error LNK1104: 无法打开文件“…….lib”
添加之后如下:
点击OK。再点击应用,确定。
建立一个控制台应用程序,输入下面代码:
#include<gtk/gtk.h>
//回调函数
void hello(GtkWidget *widget
,gpointer data)
{
g_print("HelloWorld!\n");
}
gint delete_event(GtkWidget *widget
,GdkEvent *event
,gpointer data)
{
g_print("deleteevent occurred\n");
returnTRUE;
}
void destroy(GtkWidget *widget,
gpointerdata)
{
gtk_main_quit();
}
int main(int argc, char **argv)
{
//GtkWidget是构件的存储类型
GtkWidget*window;
GtkWidget*button;
gtk_init(&argc,&argv);
//创建新窗口
window= gtk_window_new(GTK_WINDOW_TOPLEVEL);
//当收到delete_event信号时,调用前面的delete_event函数
g_signal_connect(G_OBJECT(window),"delete_event",
G_CALLBACK(delete_event),NULL);
//destroy事件的回调函数destroy
g_signal_connect(G_OBJECT(window),"destroy",
G_CALLBACK(destroy),NULL);
//改变窗口边框的宽度
gtk_container_border_width(GTK_CONTAINER(window),10);
//创建一个标签为"Hello World"的新按键
button= gtk_button_new_with_label("HelloWorld");
//当收到"clicked"信号时会调用hello函数
g_signal_connect(G_OBJECT(button),"clicked",
G_CALLBACK(hello),NULL);
g_signal_connect_swapped(G_OBJECT(button),"clicked",
G_CALLBACK(gtk_widget_destroy),
window);
gtk_container_add(GTK_CONTAINER(window),button);
gtk_widget_show(button);
gtk_widget_show(window);
gtk_main();
return0;
}
编译,运行,如果能够成功运行,则配置成功.
Enjoyit~~~
- VS2010下配置GTK+2.0
- linux下GTK+配置
- gtk+的windows安装和vs2010配置
- Windows下GTK+的配置
- linux下eclipse配置gtk
- win7下QT5.2.0+VS2010环境配置
- VS2010下配置openGL
- VS2010下配置DirectX
- vs2010下配置OpenCV
- VS2010下配置ACE
- VS2010下配置winpacp
- VS2010下配置MPI
- VS2010下QT配置
- VS2010下OpenCV248配置
- VS2010下配置OpenMesh
- vs2010下配置pthread
- VS2010下配置CppUTest
- GTK学习笔记 - windows下的gtk开发配置
- 笔记 第22章软件安装和tarball包 鸟哥的linux私房菜第三版
- HDU 3549Flow Problem(网络流之最大流)
- *.exe 中发生了缓冲区溢出
- 对账简单说
- cclabelttf字体不显示的解决办法
- VS2010下配置GTK+2.0
- ACDream 1101 瑶瑶想要玩滑梯 线段树
- oracle 中 cursor 与refcursor及sys_refcursor的区别 (转载)
- OCP 1Z0 052 94
- xml中子元素与属性有什么区别和关系?
- cocos2d-x 编译android 发生undefined reference to `XX'错误
- swift学习 github地址
- 动态代理
- 第三个博客-麦泽明