1

SWI Prolog用作支持的编译器(v 6.6.1)。安装logtalk3.0.0.1 后我开始收到错误

logtalk_load(库(types_loader),[source_data(on),report(on)])。

% [c:/users/dizqj373/documents/logtalk/library/termp.lgt 已加载]!域错误:值 alias/2 不在域指令中!在指令中:-别名(termp,[variables/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。

你能帮助我并指导一下可能出了什么问题吗?谢谢!

4

1 回答 1

0

alias/2指令是在 Logtalk 3 中引入的,弃用了alias/3Logtalk 2.x 中使用的可读性较差的指令。alias/2如果您尝试使用无法识别新指令的 Logtalk 2.x 编译器编译和加载 Logtalk 3 库,则会出现您发布的错误。

如果您刚刚从 Logtalk 2.x 更新到 Logtalk 3,请确保您确实在使用新版本的编译器。检查LOGTALKHOME环境变量的当前值是否指向 Logtalk 3 安装文件夹,而不是旧的 Logtalk 2.x 文件夹。启动 Logtalk 后,您还可以通过查询检查您使用的版本:

| ?- current_logtalk_flag(version_data, Version).

Logtalk 3 中也引入了这个标志。如果您可以看到无法识别标志的错误,那么您很可能正在加载旧的 Logtalk 2.x 版本。

于 2015-05-21T10:12:07.110 回答