61 lines
1.9 KiB
Plaintext
61 lines
1.9 KiB
Plaintext
|
|
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 2013, 2015 and 2017:
|
|
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 15 2017" -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.
|