Protobuf 2.5.0 for Windows How this was built Generally, follow the directions in vsprojects\readme.txt in the source distribution. To build with VS2010, open protobuf.sln and allow VS to perform autoconvert. Then, select all projects, open Properties, select all configurations and all platforms, and set Platform Toolset to WindowsSDK7.1. To add an x64 build, create the x64 configuration (copy settings from Win32). No further settings need to be changed (although the output will go to the same directory as the Win32 by default, so perhaps add $(Platform) to the output directory). Since we are producing static libraries, it is best to set C/C++ > General > Debug Information Format to /Z7, to prevent LNK4099 warnings. To build from the Visual Studio command line: msbuild /p:Configuration=Debug /p:Platform=Win32 protobuf.sln msbuild /p:Configuration=Release /p:Platform=Win32 protobuf.sln msbuild /p:Configuration=Debug /p:Platform=x64 protobuf.sln msbuild /p:Configuration=Release /p:Platform=x64 protobuf.sln After the C++ build and running extract_includes.bat, copy inlucde/* to $dest/include/* protoc.exe (from Release|Win32 build) to $dest/bin libprotobuf.lib, libprotobuf-lite.lib, and libprotoc.lib to the config-platform directory under $dest/lib (2013.07.30 Mark Tsuchida) For VS2019, the same instructions were followed, for x64 only. No change to platform toolset (the project conversion set it to v142). - The preprocessor macro _SILENCE_STDEXT_HASH_DEPRECATION_WARNINGS was defined where needed to suppress errors. - The Output Directory for x64 needed to be adjusted so that the custom build steps for the tests could find the built protoc.exe. - Spaces needed to be inserted before uses of the "PATH_SEPARATOR" and "ETC" macros to prevent interpretation as user-defined string literal suffix. With these changes, all projects compile, but the tests fail. So this version is not appropriate for use with VS2019; we need a newer version. (2021.12.08 Mark Tsuchida)