0
Posted on 下午9:18:00 by Fan Zhang and filed under ,

前几天我在抱怨 Google Notebook 在 Firefox 3 下有问题,今天发现提到的两个问题都解决了。似乎相应的 Firefox 扩展从原来的 1.0.0.19 升级到了 1.0.0.20。

昨天我还实在忍不住给反馈了一个意见,今天发现更新了,实在是意外之喜,虽然这个问题拖了很长时间。

0
Posted on 上午2:06:00 by Fan Zhang and filed under

今天使用 iGoogle 的时候,发现显示有些问题,所有的小工具都向左平移了,空出左边很大一片空白,这个空白的宽度和上面的标签一样长。

我以为是一个 bug,找了半天,只在网上发现一个人提出这个问题,并且下面的回复都是说没有这个问题。我就想是不是我的版本不对(我用的是 portableapps.com 下载的便携版),或者是扩展的问题,结果发现都不是。

偶然间,才发现是我将 Google 的所有页面都缩小了一个字体,用的是 Ctrl - 进行的全页面缩放。放大至正常字体就好了。

我想知道,对于页面的缩放设置是保存在什么地方的。

0
Posted on 下午5:10:00 by Fan Zhang and filed under ,

2008-06-04Up:

  这个问题已经解决。

  虽然我不是很依赖这个服务,不过当它不好用的时候我还是不爽。

  目前在 Firefox 3 RC1 下,有两个问题:

  1. 相应的扩展有问题,会在一个新窗口打开弹出菜单。
  2. 即使不用扩展,直接在网页上编辑 Note 的时候,会出现显示异常,最左边有一道重影。

  第一个问题很普遍,第二个问题似乎很少有人提到,在官方的论坛我也没有找到。我觉得都不是大问题,不过这么长时间还没有修复,实在是不太应该。

  当然,我想也可能是因为 Firefox 3 还没有真正发布,或者用得人还很少,如果要解决可能造成别的版本出问题。

0
Posted on 下午2:18:00 by Fan Zhang and filed under

  在此之前,先看一篇文章:Top 10 Firefox 3 Features,相比 2.0 这种打开 40 个网页就崩溃的玩意儿来说,3.0 实在是太优秀了。我相信很多人之所以不更换是因为扩展没跟上,我也是。但是在甩掉了 Google Toolbar 这个玩意之后,我发现还是可以安心换上 Firefox 3 的。

  我发现,金山还有 Lingoes 的取词在 Firefox 3 下有些问题。(2008-05-23Up: 现在金山词霸已经支持 Firefox 3 取词。)

  想尝试下的可以在这里下到便携版。下载到的是英文版,然后在官方的下载点下载语言包,还有 Locale Switcher 扩展就可以在工具菜单下转换语言了。

  下面就是扩展的问题了,不兼容怎么办?先改版本号凑合啊...我是首先去扩展的作者主页上看有没有更新(Firefox的官方网站可能更新较慢)或者测试版下载,如果没有就改版本号,或者去掉 Firefox 的检查兼容性的设置。

  强制使用过期扩展的方法:about:config --> extensions.checkCompatibility = false。

  终于可以显摆下我用的插件了,不写下载了,有的需要去扩展的开发主页或者论坛上找。

  • Adblock Plus
    屏蔽广告。
  • Add to Search Bar
    为了把百度加入到 Firefox 搜索引擎里面。
  • Auto Context
    可以方便地复制网页内容,当选取一段文本后自动弹出菜单。
  • Autofill Forms
    填表的,偶尔用用。
  • CustomizeGoogle
    调整 Google 各项服务的一些设置。
  • Download Statusbar
    为了好看。
  • DownThemAll!
    为了下载。
  • gladder
    为了上网。
  • GMarks
    抛弃 Google Toolbar 的一个原因。
  • Greasemonkey
    全世界都在用,虽然我就几个脚本。
  • IE Tab
    网上银行。
  • iMacros
    我比较懒,喜欢自动的脚本。
  • Locale Switcher
    切换语言。
  • Mouse Gestures
    我基本上就有 2 个手势:关闭、后退。
  • ScrapBook
    临时存放网络剪辑,其实本身功能很强大,但是我这类软件很多,就不很依赖这个了。
  • Smart Bookmarks Bar
    可以把书签工具栏内的书签标题隐藏只保留图标,节省界面空间。
  • Tab Mix Plus
    我不喜欢 Firefox 自动跳转到新打开的标签,因为我喜欢一下子打开好几个然后慢慢看,所以用了这个扩展,当然它的功能非常强大。

  上面的扩展都可以在 RC1 中使用,即使没有升级到的,作者也在开发之中,早晚都会升级的。所以可以安心使用,到时候再升级。

0
Posted on 下午10:36:00 by Fan Zhang and filed under , , ,

  Firefox 3 RC1 都出来了,Google Toolbar 还没有更新,不得不怀疑下程序员的效率。

  说实话,Toolbar 也不是非用不可的东西。比如 Google Bookmarks 就可以用扩展 GMarks 代替,而且更好用。按照 Google 的帮助来看,使用网页浏览历史功能必须安装工具条,并且开启 PageRank 功能。

  事实上,Google 记录网页历史是根据对网页的 PageRank 的请求来记录的,也就是说,如果装上一个查询 PageRank 的扩展,在登录帐户以后,同样能够记录网页历史。

  下面这个 Greasemonkey 脚本就是依据这个原理来达到使用 Google 网页历史的功能。

  来源于本文最后的参考文章,脚本可以从 UserScript.org 下载,这里贴出来是为了备份:)

enablegooglewebhistory.user.js

// ==UserScript==
// @name EnableGoogleWebHistory
// @author mallowlabs
// @namespace http://mallowlabs.s206.xrea.com/
// @version 0.0.2
// @license public domain
// @description : Enable Google Web History
// @published 2007-01-05
// @modified 2006-01-05
// @include *
// ==/UserScript==

// see also
// http://www.scss.com.au/family/andrew/opera/panels/pagerank/
// http://d.hatena.ne.jp/amatanoyo/20080104/1199450996
// =========================================
(function(){

    // avoid frame
    if (window.self != window.parent) return;

    var r=function(x,y){
        return Math.floor((x/y-Math.floor(x/y))*y+.1);
    },
    ch=function(url){
        url='info:'+url;
        var c=[0x9E3779B9,0x9E3779B9,0xE6359A60],i,j,k=0,l,f=Math.floor,
        m=function(c){
            var i,j,s=[13,8,13,12,16,5,3,10,15];
            for(i=0;i<9;i+=1){
                j=c[r(i+2,3)];
                c[r(i,3)]=(c[r(i,3)]-c[r(i+1,3)]-j)^(r(i,3)==1?j<<s[i]:j>>>s[i]);
            }
        };
        for(l=url.length;l>=12;l-=12){
            for(i=0;i<16;i+=1){
                j=k+i;c[f(i/4)]+=url.charCodeAt(j)<<(r(j,4)*8);
            }
            m(c);
            k+=12;
        }
        c[2]+=url.length;
        for(i=l;i>0;i--)
            c[f((i-1)/4)]+=url.charCodeAt(k+i-1)<<(r(i-1,4)+(i>8?1:0))*8;
        m(c);
        return'6'+c[2];
    };
    var url=document.location;

    /* create image element */
    new Image().src = 'http://www.google.com/search?client=navclient-auto&ch='+ch(url)+'&features=Rank&q=info:'+escape(url);
})();

相关链接:

  1. Use Google Web History Without Installing Google Toolbar
  2. You Can Use Google Web History with Opera
3
Posted on 下午6:10:00 by Fan Zhang and filed under

  近一段时间,我发现 IT八卦站--cnBeta 上不去,域名都无法解析,怀疑是教育网封禁了。用了教育网直通车也不行。

  不过鉴于附近似乎施工又把光缆挖断了,这个问题可能不是普遍问题...

  cnBeta 有教育网镜像 edu.cnbeta.com,IP是218.93.211.244,修改 host 文件就行了。

0
Posted on 下午4:31:00 by Fan Zhang and filed under

  我把 8700 的 ROM 更新到了 4.2.114 原来的问题也没有解决:

  1. 输入法切换后,字体大小显示异常。
  2. 重启后,自动背光的设置无视我的选项,效果为打开状态。

  此外,我还把桌面管理器的媒体管理器装上了,这样就可以直接往机器里面存文件了,主要是 txt 格式的电子书。

  另外,更新完 ROM 以后会不能使用自带浏览器,这时候只要重新装一遍 SIM 卡,重启就行。

  中国移动的名称也彻底变成了英文“CHINA MOBILE”,虽然我已经习惯了字体显示不完全的“中国移动”。

  以前用过 MobiPocket 的 Reader 和 Creator,但是会出现不规则的断行问题,不知道最新版本解决了没有。英文没有问题,但是中文会在不该换行的地方换行。这个显示是由于对多字节字符的支持不完全造成的,官方论坛称会改进这个问题,目前可以通过调节字体和行距一类的选项来改善显示效果。

  我现在用的是 Anyview 这个软件,可以阅读 txt、umd 格式,很好!可去 BerryMail 下载,注册只需要在网站上填写生成的机器码和邮箱就会收到注册码,是免费的。

  Anyview 在输入注册码和修改设置的时候如果出错退出,那么把输入法改成英文就好了。

0
Posted on 上午2:17:00 by Fan Zhang and filed under

提醒:请务必到官方网站核实捐款账号、短信账号!

2008-06-03Up:

  因为时效性,我取消了文中的一些链接。

我尝试了3种捐款方式,使用淘宝的捐款通道最快捷:

短信捐款

  中国移动、中国联通手机用户以及中国电信、中国网通小灵通用户均可编辑短信1或2,发送至1069999301,即向"红十字救援行动"捐款1元钱或2元钱。查看详细信息

  经过实验,似乎只能发送1元,2元这两种金额,发送其他金额无效(没有提示),重复发送也似乎无效。我是北京移动。

2008-05-16Up:现在上限提高到了30元。

淘宝捐款

  进入淘宝首页,有壹基金与各网站联合捐款链接。

  这个支付相当快速!

红十字会网上捐款

  通过红十字会官网→网上捐助。

  我根本打不开,打开以后也提交不上,还是用那个淘宝的方便。

0
Posted on 上午12:18:00 by Fan Zhang and filed under ,

  谷歌全球副总裁大中华区总裁李开复亲自在黑板报上写了一篇文章:云中漫步--迎接云计算时代的到来。我觉得还是不够通俗,而且文章太长啦...

  说实话,如果不是因为在 Reader 里面看到了好几次这个文章(被转载到不同网站上),如果不是因为碰巧看了眼作者,我很可能直接跳过了这篇连个插图都没有的长篇大作。

  看了文章,我对云计算的理解是:这个词语是装x用的,咱们可以不理会。它要表达的含义就是我们要把网络当作自家的后院,信息都是储存在网络上,我们想要完成的工作都通过用诸如 PC,PDA,手机之类的终端完成。通过这种方式,我们可以干的比想象中的还多,比如:写文章,发邮件,甚至给手机充钱或者给家里买菜。

  至于云计算到底涉及什么高深的技术,用户完全可以不理会,所要求的仅仅是安全和便捷!但这两天恰恰是最欠缺的。(突然想到,安全和便捷或许是矛盾的...)

  比如,我用 Google Docs 新建一个文档就要1分钟,点开右键菜单还要等半天,这种东西我怎么用?虽说这个要怪网速,但是很现实,Google Gears 或许能解决这个问题。

  抱怨完毕。

  云计算给用户带来的好处非常多,这点原文章有详细的介绍,说得很好!当我看到还有人在用 Foxmail 备份通讯录的时候,我会建议他用 Gmail。当有人还在用收藏夹一个一个点击朋友的 Blog 的时候,我会建议他用 Google Reader。我用 Google Calendar 存放了我朋友的生日,使我可以在前一天收到短信发来的提醒。我不怕重装系统,也不怕在不同地点使用不同的电脑,因为我常用的配置、收藏夹都存放在网上。

  云计算不仅仅是给个人带来好处,更给人与人直接的交流带来方便。使用 Google Reader 的 Note 功能(当然了,http://del.icio.us/更是正统的应用),可以随时分享我浏览网络的所思所感。使用 Google Docs 可以方便地进行团队合作。

  原文的后半部分提到了很多专业的技术,提出"云计算是在网络时代应运而生的技术制高点"。嗯,要是学相关专业的赶紧去投简历吧。

  不怪开复写了那么长,原来我也写得不短。我想,我可以稍微理解那种心情,那种临近新技术的欣喜和远处美好的愿望。

0
Posted on 下午10:06:00 by Fan Zhang and filed under

  沐浴更衣,满怀崇敬的在电脑上看了 EVA 的新剧场版...

  我看的是1.01版,上面有各种机械建筑的名词。看得满眼花啊,想出这么多看起来非常NB的词汇不容易啊...

  虽然还是原来的剧情,我想 Fans 还是要追的,真是骗钱啊。重新制作的场景的确精彩,最后的预告也扣人心弦。也就是说,在下一部剧场版:"破"出来的时候还是要再被骗一次。

0
Posted on 上午12:36:00 by Fan Zhang and filed under ,

  好吧,这个已经不算新闻了...我最近用 VirtualBox 安装了 Ubuntu 8.04,过程很简单,也没有遇到太大的问题。

  安装完以后,需要安装增强工具包(VirtualBox Guest Additions),这样才能正确设置显卡什么的。安装这个比较简单:

cd /media/cdrom

sudo bash ./VBoxLinux*

  虚拟机中传递文件要用到虚拟文件夹,Guest OS 为 Linux 时,使用:

mount -t vboxsf [-o OPTIONS] sharename mountpoint

就可以使用了。

  比如我首先在建立一个目录 /mnt/share,我要挂载 hostshare 这个文件夹,只需要输入:

mount -t vboxsf hostshare /mnt/share

  我发现 VirtualBox 还是很好用的,而且有一个无缝结合的技术非常好玩,它可以把两个操作系统放在一起,可以很智能地切换应用程序。

0
Posted on 下午8:57:00 by Fan Zhang and filed under

  在编译 expat 2.0.1 的时候,执行到 make install 发现有一个错误,大致上是在安装 xmlwf/xmlwf 的时候,提示文件名错误。

  事实上是因为在 MinGW 下编译出的可执行文件都是带有扩展名 .exe 的,但是在执行 make install 的时候并没有加上这个扩展名,导致文件错误,事实上,这个文件已经复制好了。

  错误只是导致下面的 man 目录内容没有办法复制,不影响使用。

  这个问题大概是因为 expat 所自带的 libtool 工具的问题,可以参考:

[expat-Bugs-1211302] building 2005-01-28 with mingw/msys

libtool with expat, xmlwf/xmlwf target problems again

这两个网页描述了类似的问题。

  我尝试在 Linux 下编译 expat 是没有问题的。

  我也试着用新版的 libtool 去代替自带的相应文件,不过没有成功。

0
Posted on 上午12:35:00 by Fan Zhang and filed under

  我是在 Glade/Gtk+ for Windows 下载的编译好的工具包,但是这里面编译的 xgettext 不能处理 glade 文件,会提示:

Language "glade" is not supported. ... relies on expat.This version was built without expat.
或者不支持"glade"。... 依赖 expat。此版本创建时未包含 expat。

  gettext 是软件国际化用的,这里缺少的 expat 是一个 XML 解析库,因为 glade 本质就是一个 XML 文件。

  既然现成的不行,就需要下载源码重新编译。下面所需要的所有包都是很好下载的,就不写地址了。

  要编译我们需要的 gettext,需要先编译两个:libiconv 和 expat。这两个可以找编译好的,也可以自己编译下。在 MinGW 下编译 expat 可能还有些不重要的问题,以后再说。

  都准备好以后(当然需要先配置好 MinGW ),将 gettext-0.17.tar.gz (可能版本不同)解压,然后在 MSYS 中进入相应目录输入:

./configure --prefix=/c/dist/gettext/ --with-libiconv-prefix=/c/extra-libs/libiconv --with-libexpat-prefix=/c/extra-libs/expat --enable-threads=win32

make

make install

  依次执行并且经过漫长的配置编译(我是在30分钟以上),就生成了我们需要的文件。至于选项的含义,可以通过:

./configure --help

查看。其中 --enable-threads=win32 这个选项是听别人说要加上的,有关多线程的。

0
Posted on 下午11:48:00 by Fan Zhang and filed under

  今天下载了试用,发现界面清爽,使用方便。

  它是金山词霸的一个简略版,但是功能不弱,完全免费,整合了 Google 的语言工具,我很喜欢这个功能。以前用 Lingoes,现在决定改用金山词霸了。

  词典应该可以添加,但是在界面上没有,需要自行复制到文件夹里面。

  在系统设置里面,自动更新不能取消。当然,我这个也不是正式版,可能以后会有选项,现在看来这个选项还没做好。

  提醒,因为软件会上网搜索翻译,所以上网按流量计费的需要注意,可以去掉网络词典,但是目前还是会自动更新(我今天还更新了一次,不过很小,一闪就过去了)。

0
Posted on 下午12:21:00 by Fan Zhang and filed under

2008-05-08Up:

  自从有了这个功能以后,我每天都会去 Group 里面看别人如何骂这个功能没有删除选项。还会不断刷新 Reader,看看有没有更新。

  今天发现终于可以删除了!

  快捷键是 Shift + D。

  这个功能可以给分享的条目加一个注释,不仅如此,还可以在浏览任何网页的时候给这个网页加注释并且加入到 Reader 的 Note 里面。

  我还是很看好这个功能的。

  但是,促使我写这篇的原因是,我发现 Note 只能取消分享,但是不能删除,这让我很不爽。希望很快就能改进。

  不让删除,让修改也行啊。Btw,似乎 Google 又被 Facebook 挖走一个副总裁。

2
Posted on 下午11:39:00 by Fan Zhang and filed under

  如果一个 GTK+ 程序在 Windows 下运行,默认的中文字体是很难看的,下面就介绍如何在 GTK+ 中使用微软雅黑字体。

  找到 ...\etc\pango\pango.aliases 文件,添加一行:

msyh = "Microsoft YaHei"

  这就声明了雅黑字体,当然 Windows 字体目录下面应该有雅黑字体,Microsoft YaHei 就是字体的名字,比如还有 Simsun 宋体。我们把雅黑字体定义为一个字体族 msyh。

  找到 ...\gtk-2.0\gtkrc.zh_CN 文件,如果没有可以创建一个:

style "user-font" {
font_name = "msyh 10"
}

widget_class "*" style "user-font"

gtk-font-name="msyh 10"

  这样应用程序的字体就变成微软雅黑了。

2
Posted on 下午11:21:00 by Fan Zhang and filed under

什么是 Glade?

  Glade 是针对 GTK+ 工具箱与 GNOME 桌面开发环境的快速图形界面开发工具。用 Glade 设计的用户接口以 XML 的文件形式保存,然后根据需要由程序通过 libglade 库文件来动态加载。因为使用了 libglade 库,Glade XML 文件能够被 C,C++,Java,Perl,Python,C# 等等语言所支持。

  目前的版本 Glade-3 是对原先 Glade 代码的完全重写,并且去除了代码生成功能。这样据说是为了达到界面与编程分离的目的。

  下面打开 Glade-3 设计一个简单的界面:

  1. 点击顶层下面的窗口,则会生成一个空白的窗口,默认的名称是 window1,不用做任何修改。
  2. 点击容器下面的垂直框,添加到窗口中,条目数为3(默认)。这时候就把窗口分割成了3个区域。
  3. 点击容器下面的菜单条,添加到第一个区域,就生成了菜单。
  4. 点击控制和显示下面的文本视图,添加到第二个区域,就生成了一个文本显示区。
  5. 点击控制和显示下面的状态栏,添加到第三个区域,就生成了状态栏。
  6. 点击保存,命名为 win.glade

  这样,一个简单的程序界面就做好了。下面打开 Dev-C++ 建立一个工程,加入以下代码:

#include <gtk/gtk.h>
#include <glade/glade.h>

int main(int argc, char* argv[])
{
GladeXML *gxml;
GtkWidget *window;

gtk_init (&argc, &argv);
gxml = glade_xml_new("win.glade", NULL, NULL);
window = glade_xml_get_widget(gxml, "window1");
g_object_unref (G_OBJECT (gxml));
gtk_widget_show (window);
gtk_main ();

return 0;
}

  修改工程属性,在连接器的参数中,除了之前所需的参数以外,还要加入一项:-lglade-2.0,比如所有参数为:

-lgtk-win32-2.0 -lgdk-win32-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lpangowin32-1.0 -lgdi32 -lpango-1.0 -lgobject-2.0 -lgmodule-2.0 -lglib-2.0 -lintl -liconv -lglade-2.0

  编译运行就可以显示刚才设计的程序界面了!

  一般情况下是没有错误的...如果出现连接错误,确认下 GTK+ 的各种库是否完整,如果出现窗口显示不出的问题,确认下是否名字写错。

0
Posted on 下午10:17:00 by Fan Zhang and filed under

  打开 Dev-C++,建立一个新的工程,添加一个新文件:

#include <gtk/gtk.h>

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

window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_title(GTK_WINDOW(window), "Hello World");
gtk_widget_show(window);
gtk_main();

return 0 ;
}

  这个时候还不能编译,需要修改工程属性,在"工程->工程属性->参数" 或 "工具->编译选项"中的链接器框里面填入:

-lgtk-win32-2.0 -lgdk-win32-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lpangowin32-1.0 -lgdi32 -lpango-1.0 -lgobject-2.0 -lgmodule-2.0 -lglib-2.0 -lintl -liconv

在编译选项里面填入:

-mms-bitfields

就可以编译通过了。

  在运行以后,你会发现出现一个空白窗口,标题为 Hello World。这个时候只点击窗口的关闭是不能结束进程的,你要去任务管理器里面把进程结束。

  在工程属性里面,如果把工程类型设置为"Win32 控制台程序",则运行的时候会同时出现一个控制台窗口(一个黑色的命令行界面的窗口),这个窗口在调试的时候很有用,一些错误信息会在这里显示。如果把工程类型设置为"Win32 图形界面程序",这个黑窗口就没有了。

  为什么要在编译选项里面加入"-mms-bitfields"?下面照抄网上找来的解释:

  CPU访问内存时,总是以其整数字长为单位读写。比如 x86 CPU 总是从4字节的整数倍数地址上,读取4字节数据,它不能随心所欲地从任何位置开始读取任意长度数据。为了效率考虑,默认情况下编译器总是让整数存放于其长度的整数倍数地址上。在一个结构中,为了做到这一点,有时不得不浪费几个字节。

  举个例子,我们定义一个结构:

struct {
char c;
int i;
};

  从字面上看,这个结构的长度是5个字节,但默认情况下编译器总是分配8个字节,是为了让 i 出现在偏移量 4 地址上。

  位域 bitfields 是 C 语言结构中的一个成员,可以指定该成员所占内存的位数 bit。然而,在位域的对齐方式上,GCC和MSVC这2个编译器产生了巨大的分歧。现在,我们将上面这个结构改成下面这样子:

struct {
char c; int b: 1;
int i;
};

  我们在 c 和 i 中插入了一个只占 1 位内存的整数。在 GCC 中,我们测试该结构的长度,发现仍然是 8 个字节,就是说 b 利用了 c 和 i 间的空隙,而没有多占空间。然而在 VC 中我们会发现,结构长达 12 字节。也就是说 b 像其他所有整数一样,在4倍数地址上对齐了。

  如果仅仅这样还好办,不幸的是,如果你在b后面再插入一个位域 b2,长度还是12。而如果插入一个 short 型的位域,长度将变成16!

  其原因在于 VC 使用了一种古怪的对齐方式,且没有完整的文档描述。基本上,VC 将结构中相邻的相同数据结构位域组成位域组,然后每个位域组都默认要求按其数据类型对齐。另外还有许多不同的例外情况。这样的情况与任何一个普通 GCC 支持的 对齐模式都不同。对齐方式不同意味着什么呢?考虑一下,Windows 是用 VC 编译的,也就是说所有 Windows API 都使用 VC 对齐方式。而如果你用 MinGW GCC编译 Windows 程序,你对所有使用了位域的 Windows API 的调用都将出错!而我们的 GTK+ for Windows 显然也是使用了这种对齐方式。

  万幸的是,Windows 版 GCC 在编译时补上了一个新的命令行开关,-mms-bitfields,使其使用 VC 兼容的对齐方式。而这个开关别的平台上的 gcc 则都没有。加上这个编译开关后生成的代码将与 VC 的代码有相同的行为特征。

6
Posted on 下午9:42:00 by Fan Zhang and filed under

  在 Windows 下手工搭建各种开发环境都是一件麻烦的事情,下面我要为 Dev-C++ 配置 GTK+ 的开发环境。

  1. Glade/Gtk+ for Windows 下载开发包,这个是已经编译配置好的安装程序,可以省却不少麻烦。下载一个 gtk-dev-2.12.9-win32-2.exe 就行了。Runtime 好像可以不装。
  2. 运行以后,会选择配置 IDE 环境,选上 Dev-C++ 即可。
  3. 这个时候,环境变量以及Dev C++ 的目录设置都应该配置好了。

  检查一下环境变量 PATH

%GTK_BASEPATH%\bin

  检查一下Dev-C++ 的“工具->编译选项->目录”

  1. 库:
    ...\GTK\lib
  2. 包含文件:
    ...\GTK\include
    ...\GTK\include\gtk-2.0
    ...\GTK\include\glib-2.0
    ...\GTK\include\pango-1.0
    ...\GTK\include\cairo
    ...\GTK\include\atk-1.0
    ...\GTK\include\gtkglext-1.0
    ...\GTK\include\libglade-2.0
    ...\GTK\include\libxml2
    ...\GTK\lib\gtk-2.0\include
    ...\GTK\lib\glib-2.0\include
    ...\GTK\lib\gtkglext-1.0\include

  这个时候,GTK+ 已经配置好了。