1e3f29b62f
I understood that if a WTPV is specified, it's often wrong because different VS installations have different SDK version installed. Omitting the WTPV tag makes VS2017 default to Windows SDK 8.1 which often is also missing, so in any case people may need to specify the WTPV before building. But some day in the future a missing WTPV tag will start to default to the latest installed SDK which sounds reasonable: https://developercommunity.visualstudio.com/content/problem/140294/windowstargetplatformversion-makes-it-impossible-t.html Thanks to "dom".
52 lines
1.8 KiB
Plaintext
52 lines
1.8 KiB
Plaintext
|
|
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.
|
|
|
|
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.
|
|
|
|
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>.
|
|
|