SumatraPDF is a multi-format (PDF, EPUB, MOBI, FB2, CHM, XPS, DjVu) reader for Windows under (A)GPLv3 license, with some code under BSD license (see AUTHORS).
To compile you need Visual Studio 2019 16.6 or later. Free Community edition works.
vs2019/SumatraPDF.slnand hit F5 to compile and run.
For best results use the latest release available as that's what I use and test with. If things don't compile, first make sure you're using the latest version of Visual Studio.
Notes on targets: *
x32_asantarget is for enabling address sanitizer, only works in 32-bit Release build and requires installing an optional "C++ AddressSanitizers" component
Docs: * https://devblogs.microsoft.com/cppblog/asan-for-windows-x64-and-debug-build-support/ * https://devblogs.microsoft.com/cppblog/addresssanitizer-asan-for-windows-with-msvc/
Flags: * https://github.com/google/sanitizers/wiki/SanitizerCommonFlags * https://github.com/google/sanitizers/wiki/AddressSanitizerFlags
Can be set with env variable: *
In Visual Studio, this is in
Note: * as of VS 16.6.2
ASAN_OPTIONS=detect_leaks=1(i.e. memory leaks) doesn't work. Unix version relies on tcmalloc so this might never work Suppressing issues: https://clang.llvm.org/docs/AddressSanitizer.html#issue-suppression Note: I couldn't get suppressing to work.