天天看點

Compile workrave under windows – My exprience 在Windows上編譯Workrave

這是我第一次在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)" ([email protected]@@QAEXXZ) 中被引用

6>GUI.obj : error LNK2019: 無法解析的外部符号 _egg_sm_client_get,該符号在函數 "private: void __thiscall GUI::init_session(void)" ([email protected]@@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

│      │  ├─[email protected]

│      │  │  └─LC_MESSAGES

│      │  ├─bg

│      │  │  └─LC_MESSAGES

│      │  ├─bn

│      │  │  └─LC_MESSAGES

│      │  ├─bn_IN

│      │  │  └─LC_MESSAGES

│      │  ├─br

│      │  │  └─LC_MESSAGES

│      │  ├─bs

│      │  │  └─LC_MESSAGES

│      │  ├─ca

│      │  │  └─LC_MESSAGES

│      │  ├─[email protected]

│      │  │  └─LC_MESSAGES

│      │  ├─crh

│      │  │  └─LC_MESSAGES

│      │  ├─cs

│      │  │  └─LC_MESSAGES

│      │  ├─cy

│      │  │  └─LC_MESSAGES

│      │  ├─da

│      │  │  └─LC_MESSAGES

│      │  ├─de

│      │  │  └─LC_MESSAGES

│      │  ├─dz

│      │  │  └─LC_MESSAGES

│      │  ├─el

│      │  │  └─LC_MESSAGES

│      │  ├─[email protected]

│      │  │  └─LC_MESSAGES

│      │  ├─[email protected]

│      │  │  └─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

│      │  ├─[email protected]

│      │  │  └─LC_MESSAGES

│      │  ├─[email protected]

│      │  │  └─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

│      │  ├─[email protected]

│      │  │  └─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

來自 劉德 的部落格

繼續閱讀