README.txt
1
2Expat can be built on Windows in two ways:
3 using MS Visual Studio .NET or Cygwin.
4
5* Cygwin:
6 This follows the Unix build procedures.
7
8* MS Visual Studio 2013, 2015 and 2017:
9 Use CMake to generate a solution file for Visual Studio, then use msbuild
10 to compile. For example:
11
12 md build
13 cd build
14 cmake -G"Visual Studio 15 2017" -DCMAKE_BUILD_TYPE=RelWithDebInfo ..
15 msbuild /m expat.sln
16
17* All MS C/C++ compilers:
18 The output for all projects will be generated in the <CMAKE_BUILD_TYPE>\
19 and xmlwf\<CMAKE_BUILD_TYPE>\ directories.
20
21* Creating MinGW dynamic libraries from MS VC++ DLLs:
22
23 On the command line, execute these steps:
24 pexports libexpat.dll > expat.def
25 pexports libexpatw.dll > expatw.def
26 dlltool -d expat.def -l libexpat.a
27 dlltool -d expatw.def -l libexpatw.a
28
29 The *.a files are mingw libraries.
30
31* Special note about MS VC++ and runtime libraries:
32
33 There are three possible configurations: using the
34 single threaded or multithreaded run-time library,
35 or using the multi-threaded run-time Dll. That is,
36 one can build three different Expat libraries depending
37 on the needs of the application.
38
39 Dynamic Linking:
40
41 By default the Expat Dlls are built to link dynamically
42 with the multi-threaded run-time library.
43 The libraries are named
44 - libexpat(w).dll
45 - libexpat(w).lib (import library)
46 The "w" indicates the UTF-16 version of the library.
47
48 Versions that are statically linking with the multi-threaded run-time library
49 can be built with -DEXPAT_MSVC_STATIC_CRT=ON.
50
51 Static Linking: (through -DEXPAT_SHARED_LIBS=OFF)
52
53 The libraries should be named like this:
54 Multi-threaded: libexpat(w)MT.lib
55 Multi-threaded Dll: libexpat(w)MD.lib
56 The suffixes conform to the compiler switch settings
57 /MT and /MD for MS VC++.
58
59 An application linking to the static libraries must
60 have the global macro XML_STATIC defined.
61