Я пытаюсь создать пролог в одиночном исполнении, выполнив минималистский пример, показанный на http://www.swi-prolog.org/FAQ/UnixExe.html.swi proog standalone исполняемый файл для mac не работает как ожидалось
Все, кажется, работает хорошо, но если я пытаюсь выполнить на другом макинтош, который не имеет SWI-Пролог установлен я получаю следующее сообщение об ошибке:
dyld: Library not loaded: /usr/local/Cellar/swi-prolog/7.2.3_2/libexec/lib/swipl-7.2.3/lib/x86_64-darwin15.6.0/libswipl.dylib
Команда бегаю и его выход :
pl_test|⇒ swipl --goal=hello --stand_alone=true -o hello -c hello.pl
% autoloading prolog_codewalk:must_be/2 from /usr/local/Cellar/swi-prolog/7.2.3_2/libexec/lib/swipl-7.2.3/library/error
% autoloading qsave:current_foreign_library/2 from /usr/local/Cellar/swi-prolog/7.2.3_2/libexec/lib/swipl-7.2.3/library/shlib
% autoloading error:assertion/1 from /usr/local/Cellar/swi-prolog/7.2.3_2/libexec/lib/swipl-7.2.3/library/debug
% autoloading prolog_codewalk:portray_clause/1 from /usr/local/Cellar/swi-prolog/7.2.3_2/libexec/lib/swipl-7.2.3/library/listing
% autoloading prolog_codewalk:clause_info/4 from /usr/local/Cellar/swi-prolog/7.2.3_2/libexec/lib/swipl-7.2.3/library/prolog_clause
% autoloading prolog_codewalk:initialization_layout/4 from /usr/local/Cellar/swi-prolog/7.2.3_2/libexec/lib/swipl-7.2.3/library/prolog_clause
% autoloading prolog_source:directory_file_path/3 from /usr/local/Cellar/swi-prolog/7.2.3_2/libexec/lib/swipl-7.2.3/library/filesex
% autoloading files_ex:use_foreign_library/2 from /usr/local/Cellar/swi-prolog/7.2.3_2/libexec/lib/swipl-7.2.3/library/shlib
% autoloading record:member/2 from /usr/local/Cellar/swi-prolog/7.2.3_2/libexec/lib/swipl-7.2.3/library/lists
% autoloading files_ex:maplist/2 from /usr/local/Cellar/swi-prolog/7.2.3_2/libexec/lib/swipl-7.2.3/library/apply
% autoloading files_ex:permission_error/3 from /usr/local/Cellar/swi-prolog/7.2.3_2/libexec/lib/swipl-7.2.3/library/error
% autoloading oset:reverse/2 from /usr/local/Cellar/swi-prolog/7.2.3_2/libexec/lib/swipl-7.2.3/library/lists
% autoloading prolog_debug:backtrace/1 from /usr/local/Cellar/swi-prolog/7.2.3_2/libexec/lib/swipl-7.2.3/library/prolog_stack
% autoloading prolog_codewalk:clause_name/2 from /usr/local/Cellar/swi-prolog/7.2.3_2/libexec/lib/swipl-7.2.3/library/prolog_clause
% Autoloader: iteration 1 resolved 11 predicates and loaded 14 files in 0.101 seconds. Restarting ...
% Autoloader: loaded 11 files in 2 iterations in 0.143 seconds
hello.pl совпадает с примером, приведенным на сайте (ссылка выше)
Так вопрос, что мне не хватает?
Не уверен, если это относится к MacOS, но на Linux, пытаясь сделать «автономный», слишком много проблем, чтобы приложить все усилия. Надеюсь, что кто-то даст вам полезный ответ. –
Я переключился на пролог GNU ... компиляция работала как шарм из коробки. Однако я бы не прочь ответить на этот вопрос :) – skamsie
Сила SWI-Prolog - обширные стандартные библиотеки. Если вы хотите «скомпилировать» двоичные файлы, GNU-Prolog определенно лучший выбор. –