Build on Microsoft Windows with Microsoft Visual Studio 1. For Postgres 12 and higher you need libicu headers 2. Orafce library is linked with runtime library - this library should to use same platform toolset like Postgres server. 3. Start empty project 4. Add existing items - *.c and *.h files except "sqlscan.c". This file is compiled as include of sqlparse.c and should not be compiled as separate c file! 5. In configuration manager choose configuration - "Release" and platform. Platform must be same like your Postgres server. 6. V project properties set Under "Configuration Properties" -> "General", set "Configuration Type" to "Dynamic Library (.dll)". Under "C/C++" -> "Preprocessor Directives", add the directive "WIN32" Under "C/C++" -> "Code Generation", set "Enable C++ Exceptions" to "No" "C/C++" -> "Code generation" -> "Runtime library" must be /MD Under "Advanced" set "Compile As" to "C Code" Under "Linker" -> "Manifest File", set "Generate Manifest" to "No" Under "Linker" -> "Input" -> "Additional Dependencies", add postgres.lib to the library list In the properties dialog, go to "Configuration Properties" -> "C/C++" -> "General", "Additional Include Directories" include\server\port\win32_msvc include\server\port\win32 include\server include Attention, there should be real paths to include files .. "include\server\port\win32_msvc" is in my case "C:\Program Files\PostgreSQL\13\include\server\port\win32_msvc". All four paths to include folders should be correct. PostgreSQL 10 and higher requires lib ICU include file. I had install libICU before, and then add to "Additional Include Directories" C:\Users\user\Documents\icu-59.1-vs2015\include You’ll also need to set the library path. Under "Linker"->"General", in Additional Library Directories. In my case that’s C:\Program Files\PostgreSQL\12\lib. set "Linker"->"General"->"Link Library Dependencies" to No. 7. make build