Note that all this is rather experimental. Please do not compile Pango in a path with spaces to avoid potential problems during the build and/or during the usage of the Pango library. Please refer to the following GNOME Live! page for more detailed instructions on building Pango and its dependencies with Visual C++: https://live.gnome.org/GTK%2B/Win32/MSVCCompilationOfGTKStack This VS9 solution and the projects it includes are intented to be used in a Pango source tree unpacked from a tarball. In a git checkout you first need to use some Unix-like environment or manual work to expand files as needed, for instance the .vcprojin files here into .vcproj files. It is recommended that GLib is compiled with VS9 to compile Pango. External dependencies are at least Cairo, zlib, libpng, gettext-runtime; optional dependencies include fontconfig, freetype, and expat. Please see the build\win32\vs9\README.txt file in glib for details where to unpack them. Decide first whether you would want to use fontconfig (which also includes freetype) prior to starting this build-Cairo needs to be built with freetype *and* fontconfig support before building Pango. You will need fontconfig support if you plan on building GIMP, or if you need support for complex language scripts via fontconfig. It is recommended that one builds the dependencies with VS9 as far as possible, especially those from and using the GTK+ stack (i.e. GLib and Cairo, [Cairo if one is planning to use GTK+ 3.x]), so that crashes caused by mixing calls to different CRTs can be kept at a minimum. zlib, libpng, and Cairo do contain support for compiling under VS9 using VS project files and/or makefiles at this time of writing. For GLib, VS9 project files are available under $(srcroot)\build\vs9 in the case of GLib (stable/unstable). There is no known official VS9 build support for fontconfig (along with freetype and expat which will work with the pre-compiled fontconfig binary on ftp.gnome.org) and gettext-runtime, so please use the binaries from: ftp://ftp.gnome.org/pub/GNOME/binaries/win32/dependencies/ (32 bit) ftp://ftp.gnome.org/pub/GNOME/binaries/win64/dependencies/ (64 bit) Set up the source tree as follows under some arbitrary top folder : \ \vs9\ Unzip the binaries obtained from ftp.gnome.org in \vs9\, and build the following, if not already done so: Note: put the resulting zlib, libpng, pcre and Cairo files as follows: .dll files: \vs9\\bin .lib files: \vs9\\lib .h files: \vs9\\include The recommended build order for these dependencies: (first unzip any dependent binaries downloaded from the ftp.gnome.org as described in the README.txt file in the build\win32\vs9 folder) -zlib -libpng -(optional for GLib) PCRE (version 8.12 or later, use of CMake to build PCRE is recommended-see build\win32\vs9\README.txt of GLib) -GLib (put the sources in \, and build it from there with VS9) -Cairo (inclusive of Cairo-GObject-if using GTK+-3.x) Use the *_fc configs if the usage of fontconfig is desired; otherwise use the configs that do not end with _fc. *this* file you are now reading is thus located at \\build\win32\vs9\README.txt. is either Win32 or x64, as in VS9 project files. You should unpack the glib-dev zip file into \vs9\, so that for instance glib.h ends up at \vs9\\include\glib-2.0\glib.h. The "install" project will copy build results and headers into their appropriate location under \vs9\. For instance, built DLLs go into \vs9\\bin, built LIBs into \vs9\\lib and headers into \vs9\\include\pangpo-1.0. This is then from where project files higher in the stack are supposed to look for them, not from a specific Pango source tree like this one. It is important to keep separate the concept of a "source tree", where also non-public headers are present, and an "install tree" where only public headers are present. --Tor Lillqvist --Updated by Fan, Chun-wei