| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- Expat can be built on Windows in two ways:
- using MS Visual Studio .NET or Cygwin.
- * Cygwin:
- This follows the Unix build procedures.
- * MS Visual Studio 2022:
- Use CMake to generate a solution file for Visual Studio, then use msbuild
- to compile. For example:
- md build
- cd build
- cmake -G"Visual Studio 17 2022" -DCMAKE_BUILD_TYPE=RelWithDebInfo ..
- msbuild /m expat.sln
- * All MS C/C++ compilers:
- The output for all projects will be generated in the <CMAKE_BUILD_TYPE>\
- and xmlwf\<CMAKE_BUILD_TYPE>\ directories.
-
- * Creating MinGW dynamic libraries from MS VC++ DLLs:
-
- On the command line, execute these steps:
- pexports libexpat.dll > expat.def
- pexports libexpatw.dll > expatw.def
- dlltool -d expat.def -l libexpat.a
- dlltool -d expatw.def -l libexpatw.a
-
- The *.a files are mingw libraries.
- * Special note about MS VC++ and runtime libraries:
- There are three possible configurations: using the
- single threaded or multithreaded run-time library,
- or using the multi-threaded run-time Dll. That is,
- one can build three different Expat libraries depending
- on the needs of the application.
- Dynamic Linking:
- By default the Expat Dlls are built to link dynamically
- with the multi-threaded run-time library.
- The libraries are named
- - libexpat(w).dll
- - libexpat(w).lib (import library)
- The "w" indicates the UTF-16 version of the library.
- Versions that are statically linking with the multi-threaded run-time library
- can be built with -DEXPAT_MSVC_STATIC_CRT=ON.
- Static Linking: (through -DEXPAT_SHARED_LIBS=OFF)
- The libraries should be named like this:
- Multi-threaded: libexpat(w)MT.lib
- Multi-threaded Dll: libexpat(w)MD.lib
- The suffixes conform to the compiler switch settings
- /MT and /MD for MS VC++.
- An application linking to the static libraries must
- have the global macro XML_STATIC defined.
|