]>
Commit | Line | Data |
---|---|---|
11a3e7b6 VZ |
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, 2008, 2010: | |
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. |