这是我第一次在Windows上编译*nix程序,下载工具时,最开始按Windows的习惯分别安装到不同文件夹,后来发现那样很麻烦。因为每个Unix库的文件组织方式就已经包含了bin, include, lib, share, doc等文件夹,并且上述文件夹中还有库的子目录。
所以大家一定要接收教训,把gtkmm, gettext, intltool之类的全部安装到一个文件夹,例如:D:/GnuWin32/devel。可能有的人还没看明白,打出我安装后的目录树(见文章最后面“list of D:/GnuWin32/”章节)。
开始还走弯路以为要安装MSYS + MinGW或cygwin之类的,捣腾了好久。而实际上使用cmake可以生成VC8的工程文件,直接用VC8编译即可。
This document gives some hints on how to compile Workrave on Windows
using Microsoft Visual Studio (2008 Express Edition).
The minimal requirement is gtkmm, Directx SDK and cmake.
Only networking is currently not easy to build on Windows.
Install Gtkmm (required)
========================
- Download and install gtkmm:
File: ftp://ftp.gnome.org/pub/GNOME/binaries/win32/gtkmm/2.16/gtkmm-win32-devel-2.16.0-4.exe
Install to <PATH-TO-DEPEDENCIES>. eg. D:/GnuWin32/devel
Install DirectX SDK (required)
=============================
- Download and install DirectX 9 SDK:
Site: http://msdn.microsoft.com/en-us/directx/default.aspx
Install to <WHEREEVER-YOU-WANT>
Install CMake 2.6 (required)
============================
- Download and install cmake:
Website: http://www.cmake.org
File: http://www.cmake.org/files/v2.6/cmake-2.6.4-win32-x86.exe
Install to <WHEREEVER-YOU-WANT>. eg. D:\Development\CMake 2.6
Install Intltool (recommended, needed for exercises)
====================================================
- Download and Install Strawberry Perl
ActiveState may also work (untested)
Website: http://strawberryperl.com/
File: http://strawberry-perl.googlecode.com/files/strawberry-perl-5.10.0.6.msi
Install to C:\strawberry (It’s hard-coded, there is now way to change)
- Download and extract intltool
File: http://ftp.gnome.org/pub/gnome/binaries/win32/intltool/0.40/intltool_0.40.4-1_win32.zip
Extract to <PATH-TO-DEPEDENCIES>. eg. D:/GnuWin32/devel
Install Gettext (recommended, needed for localization and exercises)
====================================================================
- Download and extract Gettext
File: http://ftp.gnome.org/pub/GNOME/binaries/win32/dependencies/gettext-tools-0.17.zip
Extract to <PATH-TO-DEPEDENCIES>. eg. D:/GnuWin32/devel
Note: You may run into problems (access denied and such) if you
extract the files with unzip from cygwin; use Windows built-in zip
support.
Install Python/Cheetah (optional/experimental, needed for dbus)
===============================================================
- Download and Install Python 2.5.2
Install the x86 version, even on a 64bit systems. setuptool will not install otherwise.
Website: http://www.python.org/download/
File: http://www.python.org/ftp/python/2.6.2/python-2.6.2.msi
File: http://www.python.org/ftp/python/2.6.2/python-2.6.2.amd64.msi
- Download and install setuptools
Website: http://pypi.python.org/pypi/setuptools
File: http://pypi.python.org/packages/source/s/setuptools/setuptools-0.6c9.tar.gz
- Extract setuptools-0.6c9.tar.gz to directory outside the Windows Python installation directory
- Open Command Prompt windows and go to the directory where you extracted setuptools.
- Make sure C:\Python26 is in your PATH
- Run 'python setup.py install'
- Install Cheetah
- Open a Command Prompt (Use Run as Administrator on Vista)
- cd C:\Python26\Scripts [replace python installation directory]
- Run 'easy_install-2.6-script.py'
Install DBus (optional/experimental, needed for dbus)
=====================================================
- Download and extract libiconv
File: http://ftp.gnome.org/pub/GNOME/binaries/win32/dependencies/libiconv-1.9.1.bin.woe32.zip
Extract to <PATH-TO-DEPEDENCIES>.
- Download, compile and install DBUS:
- svn co https://windbus.svn.sourceforge.net/svnroot/windbus/trunk windbus
- mkdir windbus-build
- cd windbus-build
- Run cmake
cmake -G "Visual Studio 9 2008" ../windbus/cmake/ -DCMAKE_PREFIX_PATH="<PATH-TO-DEPEDENCIES>;<PATH-TO-GTKMM>"
-DCMAKE_INSTALL_PREFIX=<PATH-TO-DEPEDENCIES>
e.g.
cmake -G "Visual Studio 9 2008" ../windbus/cmake/ -DCMAKE_PREFIX_PATH="c:/mystuff/devel;C:/Program Files (x86)/gtkmm"
-DCMAKE_INSTALL_PREFIX=c:/mystuff/devel
- Open dbus solution in visual studio (location in windbus-build directory)
- Select Release configuration
- From Build menu, choose rebuild solution
- Right click on INSTALL project, choose build
- Select Debug configuration
- From Build menu, choose rebuild solution
- Right click on INSTALL project, choose build
msinttypes (ISO C9x compliant stdint.h and inttypes.h for Microsoft Visual Studio)
===========================================================================
- Download and install msinttypes:
Website: http://code.google.com/p/msinttypes/
File: http://code.google.com/p/msinttypes/downloads/detail?name=msinttypes-r26.zip
Extract to <VC-INCLUDE-PATH>. eg. D:\Program Files\Microsoft Visual Studio 9.0\VC\include
Compiling Workrave
==================
- Download workrave
- mkdir workrave-build
- cd workrave-build
- PATH %PATH%;D:\Development\CMake 2.6\bin
- cmake -G "Visual Studio 9 2008" <PATH-TO-WORKRAVE-SOURCES>/build/cmake/
-DDEVELOPMENT_MODE=ON
-DCMAKE_PREFIX_PATH="PATH-TO-DEPEDENCIES" -DCMAKE_INSTALL_PREFIX="<INSTALL-DIRECTORY>
Note: PATH-TO-DEPEDENCIES should contains all dependencies: gettext, dbus, intltool etc.
eg. cmake -G "Visual Studio 9 2008" ../workrave/build/cmake/ -DDEVELOPMENT_MODE=ON
-DCMAKE_PREFIX_PATH=D:/GnuWin32/devel -DCMAKE_INSTALL_PREFIX=D:/GnuWin32/programs/workrave
- Open Workrave solution in visual studio (location in workrave-build directory)
- Build
Others
======
if you see unresolved external symbols like egg_sm_client_xxx, you need to add <workrave>\frontend\gtkmm\src\eggsmclient.c to your workrave.vcproj project.
添加<workrave>\frontend\gtkmm\src\eggsmclient.c到workrave.vcproj工程中,否则会看到如下链接错误:
6>正在链接...
6>GUI.obj : error LNK2019: 无法解析的外部符号 _egg_sm_client_get_option_group,该符号在函数 "public: void __thiscall GUI::main(void)" (?main@GUI@@QAEXXZ) 中被引用
6>GUI.obj : error LNK2019: 无法解析的外部符号 _egg_sm_client_get,该符号在函数 "private: void __thiscall GUI::init_session(void)" (?init_session@GUI@@AAEXXZ) 中被引用
6>eggsmclient-win32.obj : error LNK2019: 无法解析的外部符号 _egg_sm_client_get_type,该符号在函数 _egg_sm_client_win32_get_type 中被引用
6>eggsmclient-win32.obj : error LNK2019: 无法解析的外部符号 _egg_sm_client_quit_requested,该符号在函数 _emit_quit_requested 中被引用
6>eggsmclient-win32.obj : error LNK2019: 无法解析的外部符号 _egg_sm_client_quit,该符号在函数 _emit_quit 中被引用
6>eggsmclient-win32.obj : error LNK2019: 无法解析的外部符号 _egg_sm_client_quit_cancelled,该符号在函数 _emit_quit_cancelled 中被引用
6>E:\Repository\Desktop_Environment\workrave.github.com\workrave-build\bin\Debug\workrave.exe : fatal error LNK1120: 6 个无法解析的外部命令
list of D:/GnuWin32/
==================
卷 PROGRAM 的文件夹 PATH 列表
卷序列号码为 0006EE50 6C97:9E44
D:.
├─devel
│ ├─bin
│ ├─contrib
│ │ └─tiff
│ │ └─3.8.2
│ ├─etc
│ │ ├─gtk-2.0
│ │ └─pango
│ ├─gtkmm-demo
│ ├─include
│ │ ├─atk-1.0
│ │ │ └─atk
│ │ ├─atkmm-1.6
│ │ │ └─atkmm
│ │ │ └─private
│ │ ├─cairo
│ │ ├─cairomm-1.0
│ │ │ └─cairomm
│ │ ├─gdkmm-2.4
│ │ │ └─gdkmm
│ │ │ └─private
│ │ ├─giomm-2.4
│ │ │ └─giomm
│ │ │ └─private
│ │ ├─glib-2.0
│ │ │ ├─gio
│ │ │ ├─glib
│ │ │ └─gobject
│ │ ├─glibmm-2.4
│ │ │ ├─glibmm
│ │ │ │ └─private
│ │ │ └─glibmm_generate_extra_defs
│ │ ├─gtk-2.0
│ │ │ ├─gdk
│ │ │ ├─gdk-pixbuf
│ │ │ └─gtk
│ │ ├─gtkmm-2.4
│ │ │ └─gtkmm
│ │ │ └─private
│ │ ├─libglade-2.0
│ │ │ └─glade
│ │ ├─libglademm-2.4
│ │ │ └─libglademm
│ │ │ └─private
│ │ ├─libxml
│ │ ├─libxml++-2.6
│ │ │ └─libxml++
│ │ │ ├─exceptions
│ │ │ ├─io
│ │ │ ├─nodes
│ │ │ ├─parsers
│ │ │ └─validators
│ │ ├─pango-1.0
│ │ │ └─pango
│ │ ├─pangomm-1.4
│ │ │ └─pangomm
│ │ │ └─private
│ │ └─sigc++-2.0
│ │ └─sigc++
│ │ ├─adaptors
│ │ │ ├─lambda
│ │ │ │ └─macros
│ │ │ └─macros
│ │ ├─functors
│ │ │ └─macros
│ │ └─macros
│ ├─lib
│ │ ├─gdkmm-2.4
│ │ │ └─include
│ │ ├─gettext
│ │ ├─giomm-2.4
│ │ │ └─include
│ │ ├─glib-2.0
│ │ │ └─include
│ │ ├─glibmm-2.4
│ │ │ ├─include
│ │ │ └─proc
│ │ │ ├─m4
│ │ │ └─pm
│ │ ├─gtk-2.0
│ │ │ ├─2.10.0
│ │ │ │ ├─engines
│ │ │ │ └─loaders
│ │ │ ├─include
│ │ │ └─modules
│ │ ├─gtkmm-2.4
│ │ │ ├─include
│ │ │ └─proc
│ │ │ └─m4
│ │ ├─libglademm-2.4
│ │ │ ├─include
│ │ │ └─proc
│ │ │ └─m4
│ │ ├─libxml++-2.6
│ │ │ └─include
│ │ ├─pkgconfig
│ │ └─sigc++-2.0
│ │ └─include
│ ├─manifest
│ ├─MSVC
│ ├─redist
│ └─share
│ ├─aclocal
│ ├─devhelp
│ │ └─books
│ │ ├─gtkmm-2.4
│ │ ├─libglademm-2.4
│ │ └─pangomm-1.4
│ ├─doc
│ │ ├─cairo_1.8.6-1_win32
│ │ ├─gettext
│ │ │ ├─csharpdoc
│ │ │ ├─examples
│ │ │ │ ├─build-aux
│ │ │ │ ├─hello-c
│ │ │ │ │ ├─m4
│ │ │ │ │ └─po
│ │ │ │ ├─hello-c++
│ │ │ │ │ ├─m4
│ │ │ │ │ └─po
│ │ │ │ ├─hello-c++-gnome
│ │ │ │ │ ├─m4
│ │ │ │ │ └─po
│ │ │ │ ├─hello-c++-kde
│ │ │ │ │ ├─admin
│ │ │ │ │ ├─m4
│ │ │ │ │ └─po
│ │ │ │ ├─hello-c++-qt
│ │ │ │ │ ├─m4
│ │ │ │ │ └─po
│ │ │ │ ├─hello-c++-wxwidgets
│ │ │ │ │ ├─m4
│ │ │ │ │ └─po
│ │ │ │ ├─hello-c-gnome
│ │ │ │ │ ├─m4
│ │ │ │ │ └─po
│ │ │ │ ├─hello-clisp
│ │ │ │ │ ├─m4
│ │ │ │ │ └─po
│ │ │ │ ├─hello-csharp
│ │ │ │ │ ├─m4
│ │ │ │ │ └─po
│ │ │ │ ├─hello-csharp-forms
│ │ │ │ │ ├─m4
│ │ │ │ │ └─po
│ │ │ │ ├─hello-gawk
│ │ │ │ │ ├─m4
│ │ │ │ │ └─po
│ │ │ │ ├─hello-guile
│ │ │ │ │ ├─m4
│ │ │ │ │ └─po
│ │ │ │ ├─hello-java
│ │ │ │ │ ├─m4
│ │ │ │ │ └─po
│ │ │ │ ├─hello-java-awt
│ │ │ │ │ ├─m4
│ │ │ │ │ └─po
│ │ │ │ ├─hello-java-qtjambi
│ │ │ │ │ ├─m4
│ │ │ │ │ └─po
│ │ │ │ ├─hello-java-swing
│ │ │ │ │ ├─m4
│ │ │ │ │ └─po
│ │ │ │ ├─hello-librep
│ │ │ │ │ ├─m4
│ │ │ │ │ └─po
│ │ │ │ ├─hello-objc
│ │ │ │ │ ├─m4
│ │ │ │ │ └─po
│ │ │ │ ├─hello-objc-gnome
│ │ │ │ │ ├─m4
│ │ │ │ │ └─po
│ │ │ │ ├─hello-objc-gnustep
│ │ │ │ │ └─po
│ │ │ │ ├─hello-pascal
│ │ │ │ │ ├─m4
│ │ │ │ │ └─po
│ │ │ │ ├─hello-perl
│ │ │ │ │ ├─m4
│ │ │ │ │ └─po
│ │ │ │ ├─hello-php
│ │ │ │ │ ├─m4
│ │ │ │ │ └─po
│ │ │ │ ├─hello-python
│ │ │ │ │ ├─m4
│ │ │ │ │ └─po
│ │ │ │ ├─hello-sh
│ │ │ │ │ ├─m4
│ │ │ │ │ └─po
│ │ │ │ ├─hello-smalltalk
│ │ │ │ │ ├─m4
│ │ │ │ │ └─po
│ │ │ │ ├─hello-tcl
│ │ │ │ │ ├─m4
│ │ │ │ │ └─po
│ │ │ │ ├─hello-tcl-tk
│ │ │ │ │ ├─m4
│ │ │ │ │ └─po
│ │ │ │ └─hello-ycp
│ │ │ │ ├─m4
│ │ │ │ └─po
│ │ │ └─javadoc2
│ │ │ └─gnu
│ │ │ └─gettext
│ │ ├─glib-2.20.0
│ │ ├─glib-dev-2.20.0
│ │ ├─glibmm-2.4
│ │ │ ├─docs
│ │ │ │ ├─images
│ │ │ │ └─reference
│ │ │ │ └─html
│ │ │ └─examples
│ │ │ ├─child_watch
│ │ │ ├─compose
│ │ │ ├─iochannel_stream
│ │ │ ├─keyfile
│ │ │ ├─markup
│ │ │ ├─options
│ │ │ ├─properties
│ │ │ ├─regex
│ │ │ └─thread
│ │ ├─gnomemm-2.6
│ │ │ └─libglademm-2.4
│ │ │ └─docs
│ │ │ └─reference
│ │ │ └─html
│ │ ├─gtk+-2.16.0
│ │ ├─gtk+-dev-2.16.0
│ │ ├─gtkmm-2.4
│ │ │ └─docs
│ │ │ ├─FAQ
│ │ │ │ └─html
│ │ │ ├─images
│ │ │ ├─reference
│ │ │ │ └─html
│ │ │ └─tutorial
│ │ │ ├─html
│ │ │ │ ├─figures
│ │ │ │ └─icons
│ │ │ └─icons
│ │ ├─libasprintf
│ │ ├─libcairomm-1.0
│ │ │ └─reference
│ │ │ └─html
│ │ ├─libiconv
│ │ ├─libsigc-2.0
│ │ │ └─docs
│ │ │ ├─images
│ │ │ ├─reference
│ │ │ │ └─html
│ │ │ └─tutorial
│ │ │ └─html
│ │ ├─libxml++-2.6
│ │ │ └─docs
│ │ │ ├─manual
│ │ │ │ └─html
│ │ │ └─reference
│ │ │ └─html
│ │ ├─pango-1.24.0
│ │ ├─pango-dev-1.24.0
│ │ └─pangomm-1.4
│ │ └─docs
│ │ ├─images
│ │ └─reference
│ │ └─html
│ ├─emacs
│ │ └─site-lisp
│ ├─gettext
│ │ ├─intl
│ │ ├─po
│ │ ├─projects
│ │ │ ├─GNOME
│ │ │ ├─KDE
│ │ │ └─TP
│ │ └─styles
│ ├─glib-2.0
│ │ └─gettext
│ │ └─po
│ ├─gtk-2.0
│ │ └─demo
│ ├─gtk-doc
│ │ └─html
│ │ ├─cairo
│ │ ├─gdk
│ │ ├─gdk-pixbuf
│ │ ├─glib
│ │ ├─gobject
│ │ ├─gtk
│ │ ├─libglade
│ │ └─pango
│ ├─info
│ ├─intltool
│ ├─locale
│ │ ├─af
│ │ │ └─LC_MESSAGES
│ │ ├─am
│ │ │ └─LC_MESSAGES
│ │ ├─ang
│ │ │ └─LC_MESSAGES
│ │ ├─ar
│ │ │ └─LC_MESSAGES
│ │ ├─as
│ │ │ └─LC_MESSAGES
│ │ ├─ast
│ │ │ └─LC_MESSAGES
│ │ ├─az
│ │ │ └─LC_MESSAGES
│ │ ├─az_IR
│ │ │ └─LC_MESSAGES
│ │ ├─be
│ │ │ └─LC_MESSAGES
│ │ ├─be@latin
│ │ │ └─LC_MESSAGES
│ │ ├─bg
│ │ │ └─LC_MESSAGES
│ │ ├─bn
│ │ │ └─LC_MESSAGES
│ │ ├─bn_IN
│ │ │ └─LC_MESSAGES
│ │ ├─br
│ │ │ └─LC_MESSAGES
│ │ ├─bs
│ │ │ └─LC_MESSAGES
│ │ ├─ca
│ │ │ └─LC_MESSAGES
│ │ ├─ca@valencia
│ │ │ └─LC_MESSAGES
│ │ ├─crh
│ │ │ └─LC_MESSAGES
│ │ ├─cs
│ │ │ └─LC_MESSAGES
│ │ ├─cy
│ │ │ └─LC_MESSAGES
│ │ ├─da
│ │ │ └─LC_MESSAGES
│ │ ├─de
│ │ │ └─LC_MESSAGES
│ │ ├─dz
│ │ │ └─LC_MESSAGES
│ │ ├─el
│ │ │ └─LC_MESSAGES
│ │ ├─en@boldquot
│ │ │ └─LC_MESSAGES
│ │ ├─en@quot
│ │ │ └─LC_MESSAGES
│ │ ├─en_CA
│ │ │ └─LC_MESSAGES
│ │ ├─en_GB
│ │ │ └─LC_MESSAGES
│ │ ├─eo
│ │ │ └─LC_MESSAGES
│ │ ├─es
│ │ │ └─LC_MESSAGES
│ │ ├─et
│ │ │ └─LC_MESSAGES
│ │ ├─eu
│ │ │ └─LC_MESSAGES
│ │ ├─fa
│ │ │ └─LC_MESSAGES
│ │ ├─fi
│ │ │ └─LC_MESSAGES
│ │ ├─fr
│ │ │ └─LC_MESSAGES
│ │ ├─ga
│ │ │ └─LC_MESSAGES
│ │ ├─gl
│ │ │ └─LC_MESSAGES
│ │ ├─gu
│ │ │ └─LC_MESSAGES
│ │ ├─he
│ │ │ └─LC_MESSAGES
│ │ ├─hi
│ │ │ └─LC_MESSAGES
│ │ ├─hr
│ │ │ └─LC_MESSAGES
│ │ ├─hu
│ │ │ └─LC_MESSAGES
│ │ ├─hy
│ │ │ └─LC_MESSAGES
│ │ ├─ia
│ │ │ └─LC_MESSAGES
│ │ ├─id
│ │ │ └─LC_MESSAGES
│ │ ├─io
│ │ │ └─LC_MESSAGES
│ │ ├─is
│ │ │ └─LC_MESSAGES
│ │ ├─it
│ │ │ └─LC_MESSAGES
│ │ ├─ja
│ │ │ └─LC_MESSAGES
│ │ ├─ka
│ │ │ └─LC_MESSAGES
│ │ ├─kn
│ │ │ └─LC_MESSAGES
│ │ ├─ko
│ │ │ └─LC_MESSAGES
│ │ ├─ku
│ │ │ └─LC_MESSAGES
│ │ ├─li
│ │ │ └─LC_MESSAGES
│ │ ├─lt
│ │ │ └─LC_MESSAGES
│ │ ├─lv
│ │ │ └─LC_MESSAGES
│ │ ├─mai
│ │ │ └─LC_MESSAGES
│ │ ├─mg
│ │ │ └─LC_MESSAGES
│ │ ├─mi
│ │ │ └─LC_MESSAGES
│ │ ├─mk
│ │ │ └─LC_MESSAGES
│ │ ├─ml
│ │ │ └─LC_MESSAGES
│ │ ├─mn
│ │ │ └─LC_MESSAGES
│ │ ├─mr
│ │ │ └─LC_MESSAGES
│ │ ├─ms
│ │ │ └─LC_MESSAGES
│ │ ├─nb
│ │ │ └─LC_MESSAGES
│ │ ├─ne
│ │ │ └─LC_MESSAGES
│ │ ├─nl
│ │ │ └─LC_MESSAGES
│ │ ├─nn
│ │ │ └─LC_MESSAGES
│ │ ├─nso
│ │ │ └─LC_MESSAGES
│ │ ├─oc
│ │ │ └─LC_MESSAGES
│ │ ├─or
│ │ │ └─LC_MESSAGES
│ │ ├─pa
│ │ │ └─LC_MESSAGES
│ │ ├─pl
│ │ │ └─LC_MESSAGES
│ │ ├─ps
│ │ │ └─LC_MESSAGES
│ │ ├─pt
│ │ │ └─LC_MESSAGES
│ │ ├─pt_BR
│ │ │ └─LC_MESSAGES
│ │ ├─ro
│ │ │ └─LC_MESSAGES
│ │ ├─ru
│ │ │ └─LC_MESSAGES
│ │ ├─rw
│ │ │ └─LC_MESSAGES
│ │ ├─si
│ │ │ └─LC_MESSAGES
│ │ ├─sk
│ │ │ └─LC_MESSAGES
│ │ ├─sl
│ │ │ └─LC_MESSAGES
│ │ ├─sq
│ │ │ └─LC_MESSAGES
│ │ ├─sr
│ │ │ └─LC_MESSAGES
│ │ ├─sr@ije
│ │ │ └─LC_MESSAGES
│ │ ├─sr@latin
│ │ │ └─LC_MESSAGES
│ │ ├─sv
│ │ │ └─LC_MESSAGES
│ │ ├─ta
│ │ │ └─LC_MESSAGES
│ │ ├─te
│ │ │ └─LC_MESSAGES
│ │ ├─th
│ │ │ └─LC_MESSAGES
│ │ ├─tk
│ │ │ └─LC_MESSAGES
│ │ ├─tl
│ │ │ └─LC_MESSAGES
│ │ ├─tr
│ │ │ └─LC_MESSAGES
│ │ ├─tt
│ │ │ └─LC_MESSAGES
│ │ ├─uk
│ │ │ └─LC_MESSAGES
│ │ ├─ur
│ │ │ └─LC_MESSAGES
│ │ ├─uz
│ │ │ └─LC_MESSAGES
│ │ ├─uz@cyrillic
│ │ │ └─LC_MESSAGES
│ │ ├─vi
│ │ │ └─LC_MESSAGES
│ │ ├─wa
│ │ │ └─LC_MESSAGES
│ │ ├─xh
│ │ │ └─LC_MESSAGES
│ │ ├─yi
│ │ │ └─LC_MESSAGES
│ │ ├─zh_CN
│ │ │ └─LC_MESSAGES
│ │ ├─zh_HK
│ │ │ └─LC_MESSAGES
│ │ └─zh_TW
│ │ └─LC_MESSAGES
│ ├─man
│ │ ├─man1
│ │ ├─man3
│ │ └─man8
│ ├─themes
│ │ ├─Default
│ │ │ └─gtk-2.0-key
│ │ ├─Emacs
│ │ │ └─gtk-2.0-key
│ │ ├─MS-Windows
│ │ │ └─gtk-2.0
│ │ └─Raleigh
│ │ └─gtk-2.0
│ └─xml
│ └─libglade
└─programs
原文链接:http://blog.csdn.net/linlu11/archive/2010/05/16/5597087.aspx
来自 刘德 的博客