|Did you know ...||Search Documentation:|
|Creating executables on Unix/Linux|
Creating an executable that runs on the computer on which Prolog is installed is rather simple. Below, we create
file.pl and make it execute
hello/0. The contents of
hello.pl is given below
% swipl -o myexe -g hello -c hello.pl % ./myexe Hello world!
hello :- format('Hello world!~n'), halt.
The above creates a shell-script that calls the locally installed swipl executable. Using the option
--stand_alone=true, the executable
becomes a copy of
swipl with the state attached to it. If the
SWI-Prolog kernel is statically linked (default on Linux/i386) and
the state does not use external packages that provide shared objects,
you are done. Otherwise, you must make the shared objects available
and findable to make the program usable on another computer.
On linux, you find the dependent shared objects using
the example below says that (among many system libraries), myexe
% ldd myexe ... libswipl.so.5.11.15 => /home/jan/lib/swipl/lib/x86_64-linux/libswipl.so.5.11.15 ...
libswipl.so.5.11.15 must be bundled with your application and
must be told where to find this file. This is typically resolved either
myexe in a shell-script that sets the environment variable
LD_LIBRARY_PATH or using
chrpath(1) to change the location where
myexe looks for.
Many of the packages include a
.so file that extends Prolog. If your
program depends on that, you need to distribute the .so files used with
your application. You can find the objects used with current_foreign_library/2.
By default, the objects are searched for with the alias
file_search_path/2 and absolute_file_name/3). You can alter this path
using the option