1. Download the PDFHummus/PDFWriter source code: https://github.com/galkahana/PDF-Writer This library only has build instructions for MSVC toolchains within Visual Studio 2017/2019. create folders PDFWriter\dependencies\lib\ and PDFWriter\dependencies\include 2. Use VCPKG to install the following libraries necessary for PDFHummus: libtiff, libjpeg, libpng, and zlib 3. Download freetype from: git://git.savannah.gnu.org/freetype/freetype2.git From the freetype2 source code root directory use Msys and run the following commands: mingw32-make setup mingw32 mingw32-make cp -r include\* ..\PDFHummus\PDFWriter\dependencies\include\ cp objs\libfreetype.a ..\PDFHummus\PDFWriter\dependencies\lib\ 4. The PDFHummus/PDFWriter source code includes a copy of the source code for LibAesgm in a folder with the same name. Go into this folder and run the following commands to generate the library: // fpermissive is needed because the author chose to implicitly switch between pointers of uint_8 and char. g++ -c -fpermissive *.o ar -cvq aesgm.lib *.o g++ -I "C:\Users\bad-p\Downloads\PDFHummus-build\PDFHummus\LibAesgm" 5. Download libtiff from: https://gitlab.com/libtiff/libtiff After compiling the libtiff library with the Cmake file, all object files are located in C:\Users\bad-p\Downloads\TRASH\libtiff-master\build\libtiff\CMakeFiles\tiff.dir Download libpng from: https://sourceforge.net/projects/libpng/files/libpng16/1.6.37/libpng-1.6.37.tar.xz/download?use_mirror=newcontinuum After compiling the libpng library with the Cmake file, all object files are located in C:\Users\bad-p\Downloads\TRASH\libpng-1.6.37\build\CMakeFiles\png_static.dir Download libjpeg from:https://sourceforge.net/projects/libjpeg/files/ After compiling the libjpeg library with the Cmake file, all object files are located in C:\Users\bad-p\Downloads\TRASH\jpeg-6b Download zlib from: https://www.zlib.net/ After compiling the zlib library with the Cmake file, all object files are located in C:\Users\bad-p\Downloads\TRASH\zlib-1.2.11 For all CMake instructions create a build directory in the source root. CD in to build, run Cmake .. for windows using msys pass the 'Cmake .. -G "MSYS Makefiles"' build option to generate a makefile appropiate for msys; You can use make afterwards to compile as normal. After all of the object files are moved into the same folder, generate a library for PDFWriter. ar -cvq PDFWriter.lib *.o