热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

gtk+的windows安装和vs2010配置

初始安装1.到官网下载最新的all-in-onebundle,解压到任意位置,比如我的位置为:L:\Develop\gtk(我下载的版本为3.6.4)2.将其下的bin目录添加到环境变量path:

初始安装

1.到官网下载最新的all-in-one bundle,解压到任意位置,比如我的位置为:L:\Develop\gtk (我下载的版本为3.6.4)

2.将其下的bin目录添加到环境变量path


3.(此步不是必需)打开命令行输入一下命令:

  • pango-querymodules > L:\Develop\gtk\etc\pango\pango.modules
  • gdk-pixbuf-query-loaders > L:\Develop\gtk\lib\gdk-pixbuf-2.0\2.10.0\loaders.cache
  • gtk-query-immodules-3.0 > L:\Develop\gtk\lib\gtk-3.0\3.0.0\immodules.cache
4.这里可以稍微测试一下。在”运行“窗口或命令行输入: gtk3-demo



使用GTK+3进行开发

1.打开命令行.运行以下命令,得到的信息就是编译时候的附加信息(包括头文件、库等)

pkg-config --cflags gtk+-3.0


其中-I(大写的i)参数指定了头文件目录,-L(大写的l字母)参数后面跟着的路径是库目录,-l(小写的l字母)参数跟着的路径是动态链接库文件名。

把所有-I(大写的i)后面的路径加入头文件目录,所有-l(小写的l字母)后面的路径加入库文件目录即可。

为了方便加入到vs的配置中来,我们可以将上局命令的输出存到文件中:

pkg-config --cflags gtk+-3.0 > D:\info.txt

下面是我整理好的头文件目录,将下面加入项目属性配置里面"VC++ Derectories"选项卡的“Include Directories”处:

L:/Develop/gtk/include/gtk-3.0;L:/Develop/gtk/include/cairo;L:/Develop/gtk/include/pango-1.0;L:/Develop/gtk/include/atk-1.0;L:/Develop/gtk/include/cairo;L:/Develop/gtk/include/pixman-1;L:/Develop/gtk/include;L:/Develop/gtk/include/freetype2;L:/Develop/gtk/include;L:/Develop/gtk/include/libpng15;L:/Develop/gtk/include/gdk-pixbuf-2.0;L:/Develop/gtk/include/libpng15;L:/Develop/gtk/include/glib-2.0;L:/Develop/gtk/lib/glib-2.0/include;L:/Develop/gtk/lib;

下面是库文件目录,将其加入"VC++ Derectories"选项卡的“Library Directories”处:

L:/Develop/gtk/lib

下面是要添加的动态链接库文件:

atk-1.0.lib
cairo.lib
fontconfig.lib
gailutil.lib
gdk-win32-3.0.lib
gdk_pixbuf-2.0.lib
gio-2.0.lib
glib-2.0.lib
gmodule-2.0.lib
gobject-2.0.lib
gthread-2.0.lib
gtk-win32-3.0.lib
pango-1.0.lib
pangocairo-1.0.lib
pangoft2-1.0.lib
pangowin32-1.0.lib

实话说,头文件目录和库文件目录还好搞,由于本人对编译参数的了解不是很深入,所以在链接库那里折腾了好久,最后索性用了暴力的方法,将lib目录下的所有lib文件都添加进去了。

(P.S. 大家看到要输入这么多的路径是不是很麻烦心怕呢?介绍大家一款神奇Sublime-Text,多光标模式加上替换等基本功能,会让你快速整理出可以复制进vs配置输入框中的格式。至于库文件名,你可以在命令行下进入其目录输入命令:

dir *.lib > D:\lib-names.txt

然后用上Sublime-Text神器,很快就可以得到如上的简洁格式,立即复制到vs的配置输入框中。)



跑程序

#include 

int main(int argc, char* argv[])
{
gtk_init(&argc, &argv);

GtkWidget* window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_widget_set_size_request(window, 300, 200);

g_signal_connect(G_OBJECT(window), "destroy", G_CALLBACK(gtk_main_quit), NULL);
gtk_window_set_title(GTK_WINDOW(window), "GTK+ with VS2010");

gtk_widget_show(window);

gtk_main();
return 0;
}

运行结果如下:


大功告成!


参考:

Installation and usage tutorial for Windows

结合OPENSIFT源码详解SIFT算法【转】



推荐阅读
  • 使用 ModelAttribute 实现页面数据自动填充
    本文介绍了如何利用 Spring MVC 中的 ModelAttribute 注解,在页面跳转后自动填充表单数据。主要探讨了两种实现方法及其背后的原理。 ... [详细]
  • 本文详细探讨了select和epoll两种I/O多路复用技术的内部实现原理,分析了它们在处理大量文件描述符时的性能差异,并通过具体示例代码展示了select的工作流程。 ... [详细]
  • 本文介绍了如何通过安装和配置php_uploadprogress扩展来实现文件上传时的进度条显示功能。通过一个简单的示例,详细解释了从安装扩展到编写具体代码的全过程。 ... [详细]
  • STM32代码编写STM32端不需要写关于连接MQTT服务器的代码,连接的工作交给ESP8266来做,STM32只需要通过串口接收和发送数据,间接的与服务器交互。串口三配置串口一已 ... [详细]
  • 基于SSM框架的在线考试系统:随机组卷功能详解
    本文深入探讨了基于SSM(Spring, Spring MVC, MyBatis)框架构建的在线考试系统中,随机组卷功能的设计与实现方法。 ... [详细]
  • Python3爬虫入门:pyspider的基本使用[python爬虫入门]
    Python学习网有大量免费的Python入门教程,欢迎大家来学习。本文主要通过爬取去哪儿网的旅游攻略来给大家介绍pyspid ... [详细]
  • JavaScript 跨域解决方案详解
    本文详细介绍了JavaScript在不同域之间进行数据传输或通信的技术,包括使用JSONP、修改document.domain、利用window.name以及HTML5的postMessage方法等跨域解决方案。 ... [详细]
  • 在测试软件或进行系统维护时,有时会遇到电脑蓝屏的情况,即便使用了沙盒环境也无法完全避免。本文将详细介绍常见的蓝屏错误代码及其解决方案,帮助用户快速定位并解决问题。 ... [详细]
  • 本文探讨了如何在PHP与MySQL环境中实现高效的分页查询,包括基本的分页实现、性能优化技巧以及高级的分页策略。 ... [详细]
  • 本文详细介绍了如何在Oracle VM VirtualBox中实现主机与虚拟机之间的数据交换,包括安装Guest Additions增强功能,以及如何利用这些功能进行文件传输、屏幕调整等操作。 ... [详细]
  • 在CentOS 7中部署Nginx并配置SSL证书
    本文详细介绍了如何在CentOS 7操作系统上安装Nginx服务器,并配置SSL证书以增强网站的安全性。适合初学者和中级用户参考。 ... [详细]
  • 如何使用Maven将依赖插件一并打包进JAR文件
    本文详细介绍了在使用Maven构建项目时,如何将所需的依赖插件一同打包进最终的JAR文件中,以避免手动部署依赖库的麻烦。 ... [详细]
  • 本文探讨了互联网服务提供商(ISP)如何可能篡改或插入用户请求的数据流,并提供了有效的技术手段来防止此类劫持行为,确保网络环境的安全与纯净。 ... [详细]
  • 视觉Transformer综述
    本文综述了视觉Transformer在计算机视觉领域的应用,从原始Transformer出发,详细介绍了其在图像分类、目标检测和图像分割等任务中的最新进展。文章不仅涵盖了基础的Transformer架构,还深入探讨了各类增强版Transformer模型的设计思路和技术细节。 ... [详细]
  • OpenCV中的霍夫圆检测技术解析
    本文详细介绍了如何使用OpenCV库中的HoughCircles函数实现霍夫圆检测,并提供了具体的代码示例及参数解释。 ... [详细]
author-avatar
等待的承诺灬_231
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有