使用logtalk 3.0.0.1无法使用logtalk_load加载库

时间:2015-05-21 08:46:54

标签: swi-prolog logtalk

我使用SWI Prolog作为支持的编译器(v 6.6.1)。安装logtalk 3.0.0.1后,我开始收到错误

  

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

     

%[c:/users/dizqj373/documents/logtalk/library/termp.lgt已加载]   !域错误:值别名/ 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已加载]   真。

你能帮助我并指导一下可能出错的一点吗? 谢谢!

1 个答案:

答案 0 :(得分:0)

Logtalk 3中引入了alias/2指令,弃用了Logtalk 2.x中使用的可读性较低的alias/3指令。如果您尝试使用Logtalk 2.x编译器编译和加载Logtalk 3库,则会出现您发布的错误,该编译器无法识别新的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版本。