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. 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 .