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. You can do this in three ways:
SWI-cpp2.cpp
separately.#include SWI-cpp2.cpp
to one of the foreign
predicate files.#include SWI-cpp2.h%
, add
#define _SWI_CPP2_CPP_inline inline #include <SWI-cpp2.cpp>
This will cause the compiler to attempt to inline all the functions and methods, even those that are rarely used, resulting in some code bloat.