C++ PL_new_term_refs():无外部环境
我试图从C++应用程序调用SWIPROlog。 我目前正在尝试运行官方文档中提供的一些代码:C++ PL_new_term_refs():无外部环境,c++,prolog,swi-prolog,C++,Prolog,Swi Prolog,我试图从C++应用程序调用SWIPROlog。 我目前正在尝试运行官方文档中提供的一些代码: #include <SWI-Prolog.h> #include <iostream> using namespace std; int main(int argc, char *argv[]) { term_t a0 = PL_new_term_refs(2); static predicate_t p; if ( !p ) p = PL_
#include <SWI-Prolog.h>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
term_t a0 = PL_new_term_refs(2);
static predicate_t p;
if ( !p )
p = PL_predicate("listing", 1, "database");
PL_put_atom_chars(a0, "member");
cout << PL_open_query(NULL, PL_Q_NORMAL, p, a0);
cout << a0;
return 0;
}
它可以很好地编译,但当我尝试运行它时,收到以下错误:
[致命错误:
PL_新术语\u参考:无外来环境]
我可以知道有什么问题吗?我在谷歌上找不到任何与这个主题相关的东西
多谢各位
这是我遵循的文档:我认为您应该在之前调用argc、argv,但除此之外,请查看。我在项目中广泛使用了最后一个接口,我必须说它比C接口简单得多