Не удалось загрузить библиотеку с помощью logtalk_load с использованием logtalk 3.0.0.1
Я использую SWI Prolog
как поддерживаемый компилятор (v 6.6.1). После установки logtalk
3.0.0.1 Я начал получать ошибку, когда
logtalk_load(библиотека (types_loader), [source_data (on), report (on)]).
% [c: /users/dizqj373/documents/logtalk/library/termp.lgt загружен]! Ошибка домена: значение alias/2 отсутствует в директиве домена! в директиве:- псевдоним (termp,[variable /2 as vars/2])! в файле c:/users/dizqj373/documents/logtalk/library/term.lgt между строками 36-37 Предупреждение: [Тема 2] c:/users/dizqj373/documents/logtalk/library/lgt_tmp/types_loader.pl:5: Не удалось выполнить цель инициализации% [ c:/users/dizqj373/documents/logtalk/library/types_loader.lgt загружен] true.
Не могли бы вы помочь мне и немного подсказать, что может быть не так? Спасибо!
1 ответ
alias/2
Директива была введена в Logtalk 3, осуждая менее читаемые alias/3
директива, используемая в Logtalk 2.x. Ошибка, которую вы опубликовали, будет ожидаемой, если вы попытаетесь скомпилировать и загрузить библиотеку Logtalk 3, используя компилятор Logtalk 2.x, который не распознает новую alias/2
директивы.
Если вы только что обновили Logtalk 2.x до Logtalk 3, убедитесь, что вы действительно используете компилятор новой версии. Проверьте, что текущее значение LOGTALKHOME
Переменная окружения указывает на папку установки Logtalk 3, а не на старую папку Logtalk 2.x. После запуска Logtalk вы также можете проверить версию, которую вы используете с запросом:
| ?- current_logtalk_flag(version_data, Version).
Этот флаг был также введен в Logtalk 3. Если вы можете ошибиться, что флаг не распознается, то вы, скорее всего, загружаете старую версию Logtalk 2.x.