|
1 |
|
2 Expat can be built on Windows in three ways: |
|
3 using MS Visual C++ (6.0 or .NET), Borland C++ Builder 5 or Cygwin. |
|
4 |
|
5 * Cygwin: |
|
6 This follows the Unix build procedures. |
|
7 |
|
8 * C++ Builder 5: |
|
9 Possible with make files in the BCB5 subdirectory. |
|
10 Details can be found in the ReadMe file located there. |
|
11 |
|
12 * MS Visual C++ 6: |
|
13 Based on the workspace file expat.dsw. The related project |
|
14 files (.dsp) are located in the lib subdirectory. |
|
15 |
|
16 * MS Visual Studio .NET 2002, 2003, 2005: |
|
17 The VC++ 6 workspace file (expat.dsw) and project files (.dsp) |
|
18 can be opened and imported in VS.NET without problems. |
|
19 |
|
20 * All MS C/C++ compilers: |
|
21 The output for all projects will be generated in the win32\bin |
|
22 directory, intermediate files will be located in project-specific |
|
23 subdirectories of win32\tmp. |
|
24 |
|
25 * Creating MinGW dynamic libraries from MS VC++ DLLs: |
|
26 |
|
27 On the command line, execute these steps: |
|
28 pexports libexpat.dll > expat.def |
|
29 pexports libexpatw.dll > expatw.def |
|
30 dlltool -d expat.def -l libexpat.a |
|
31 dlltool -d expatw.def -l libexpatw.a |
|
32 |
|
33 The *.a files are mingw libraries. |
|
34 |
|
35 * Special note about MS VC++ and runtime libraries: |
|
36 |
|
37 There are three possible configurations: using the |
|
38 single threaded or multithreaded run-time library, |
|
39 or using the multi-threaded run-time Dll. That is, |
|
40 one can build three different Expat libraries depending |
|
41 on the needs of the application. |
|
42 |
|
43 Dynamic Linking: |
|
44 |
|
45 By default the Expat Dlls are built to link statically |
|
46 with the multi-threaded run-time library. |
|
47 The libraries are named |
|
48 - libexpat(w).dll |
|
49 - libexpat(w).lib (import library) |
|
50 The "w" indicates the UTF-16 version of the library. |
|
51 |
|
52 One rarely uses other versions of the Dll, but they can |
|
53 be built easily by specifying a different RTL linkage in |
|
54 the IDE on the C/C++ tab under the category Code Generation. |
|
55 |
|
56 Static Linking: |
|
57 |
|
58 The libraries should be named like this: |
|
59 Single-theaded: libexpat(w)ML.lib |
|
60 Multi-threaded: libexpat(w)MT.lib |
|
61 Multi-threaded Dll: libexpat(w)MD.lib |
|
62 The suffixes conform to the compiler switch settings |
|
63 /ML, /MT and /MD for MS VC++. |
|
64 |
|
65 Note: In Visual Studio 2005 (Visual C++ 8.0) and later, the |
|
66 single-threaded runtime library is not supported anymore. |
|
67 |
|
68 By default, the expat-static and expatw-static projects are set up |
|
69 to link statically against the multithreaded run-time library, |
|
70 so they will build libexpatMT.lib or libexpatwMT.lib files. |
|
71 |
|
72 To build the other versions of the static library, |
|
73 go to Project - Settings: |
|
74 - specify a different RTL linkage on the C/C++ tab |
|
75 under the category Code Generation. |
|
76 - then, on the Library tab, change the output file name |
|
77 accordingly, as described above |
|
78 |
|
79 An application linking to the static libraries must |
|
80 have the global macro XML_STATIC defined. |