Since qpc is itself a runtime system, any code to be run
at compile-time must obey the same restrictions as for any other
runtime system. In particular, foreign code cannot be loaded into
qpc with load_foreign_executable/1 or
load_foreign_files/2. However, you can load QOF files into qpc,
and if the QOF file has object file dependencies, they will be loaded
also. For example, you might compile file.pl with qpc to get
file.qof:
file.pl
:- load_foreign_file([prog1], [])
:- load_foreign_executable(prog2)
file.qof
... <dependency on object file prog1> ...
... <dependency on shared object file prog2> ...
In this case, file.pl and file.qof both depend on the same
object files. However, while a runtime system can load file.qof, it
cannot load file.pl, because load_foreign_executable/1 and
load_foreign_files/2 are not available in the runtime kernel.