Skip to content

SWI-Prolog/packages-cpp

Repository files navigation

SWI-Prolog C++ interface

Embedding SWI-Prolog in a C++ program

The files likes.pl and likes.cpp provide a simple example embedding SWI-Prolog. To compile, run

swipl-ld -o likes likes.cpp likes.pl

Next, run as e.g.

./likes john
./likes -happy

Extending SWI-Prolog using C++ code

The file test_cpp.cpp adds foreign predicates to SWI-Prolog. To compile, run

swipl-ld -shared -o test_cpp test_cpp.cpp

Next, run as e.g.

swipl test.pl
?- use_foreign_library(test_cpp).
?- hello(world).
Hello world
true.

Testing

This package also provides tests for the native C SWI-Prolog foreign language interface because this is the most convenient place to do so and the C++ interface depends on the C interface. Most of the testing thereof is indirect through its usage in the core system as well as many of the packages.