The utility program swipl-ld (Win32: swipl-ld.exe) works with both C and C++ programs. See Linking embedded applications using swipl-ld for more details.
Your C++ compiler should support at least C++-17.
To avoid incompatibilities amongst the various C++ compilers’ABIs, 
the object file from compiling SWI-cpp2.cpp is not included 
in the shared object libswipl; instead, it must be compiled 
along with any foreign predicate files. If the macro
_SWI_CPP2_CPP_SEPARATE is defined before the include for
SWI-cpp2.h, then SWI-cpp2.cpp is not 
automatically included and must be compiled separately - either by 
creating a
.a file or by adding a #include <SWI-cpp2.cpp> 
to one of your source files.