Building XZ Utils with Microsoft Visual Studio ============================================== Introduction ------------ liblzma got MSVC support in XZ Utils 5.2.0, and the xz, xzdec, lzmadec, and lzmainfo command line tools in XZ Utils 5.6.0. Visual Studio 2015 and later are supported. NOTE: The *.exe files are linked against GNU getopt_long from the "lib" directory. That code is under the GNU LGPLv2.1 and thus the matching source code must be provided when distributing the *.exe files. The simplest way to comply with the license requirements is to distribute the matching XZ Utils source package alongside the *.exe files. Building -------- Use CMake to generate build files for MSVC. Visual Studio project files are no longer provided (XZ Utils 5.4.x were the last versions to include the project files). NOTE: GCC and Clang compatible inline assembly isn't supported by the MSVC compiler. Using clang-cl under MSVC should make inline assembly work (untested). 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 . 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.