2015-06-19 17:21:30 +00:00
|
|
|
|
|
|
|
Building XZ Utils with Microsoft Visual Studio
|
|
|
|
==============================================
|
|
|
|
|
|
|
|
Introduction
|
|
|
|
------------
|
|
|
|
|
|
|
|
MSVC 2013 update 2 and later have enough C99 support to build
|
|
|
|
liblzma from XZ Utils 5.2.0 and later without modifications.
|
|
|
|
Older MSVC versions would require a large number of changes to
|
|
|
|
the XZ Utils code and thus the old MSVC versions aren't supported.
|
|
|
|
|
|
|
|
As of 2015-06-19, some work has been done to get xz.exe and other
|
|
|
|
command line tools built with MSVC, but it's not complete enough
|
|
|
|
to be included in XZ Utils.
|
|
|
|
|
|
|
|
|
|
|
|
Building
|
|
|
|
--------
|
|
|
|
|
|
|
|
The following files in this directory are for MSVC:
|
|
|
|
|
|
|
|
config.h liblzma configuration #defines for MSVC.
|
|
|
|
liblzma.vcxproj This builds static liblzma.
|
|
|
|
liblzma_dll.vcxproj This builds liblzma.dll.
|
|
|
|
xz_win.sln Solution using the above project files.
|
|
|
|
|
|
|
|
The projects have x86 and x86-64 platform configurations, as well
|
|
|
|
as a Debug, Release, and ReleaseMT configuration -- MT is the
|
|
|
|
compiler switch to link to the CRT statically, so it will not
|
|
|
|
have any other DLL dependencies.
|
|
|
|
|
2019-01-13 15:29:23 +00:00
|
|
|
The VS2017 project files don't set <WindowsTargetPlatformVersion>.
|
|
|
|
This means that you may need to either install Windows SDK 8.1 or
|
|
|
|
you may need to set the target platform version before building.
|
|
|
|
|
2015-06-19 17:21:30 +00:00
|
|
|
Currently no test programs are built or run under MSVC.
|
|
|
|
|
|
|
|
MSVC gives a bunch of compiler warnings. Some warnings are specific
|
|
|
|
to 32-bit or 64-bit build and some appear for both builds. These
|
|
|
|
are known and shouldn't be a problem. Some of them will probably
|
|
|
|
be fixed in the future.
|
|
|
|
|
|
|
|
|
|
|
|
Notes
|
|
|
|
-----
|
|
|
|
|
|
|
|
liblzma API headers declare the functions with __declspec(dllimport)
|
|
|
|
by default. To avoid this when using static liblzma from your code,
|
|
|
|
#define LZMA_API_STATIC before #including <lzma.h>.
|
|
|
|
|