PL_new_term_refs (): нет внешней среды

Я пытаюсь вызвать SWI-Prolog из приложения C ++.

В настоящее время я пытаюсь запустить часть кода, представленного в официальной документации:

#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;
}

Он компилируется нормально, но когда я пытаюсь запустить его, я получаю эту ошибку:

[FATAL ERROR:
PL_new_term_refs(): No foreign environment]

Могу я узнать в чем проблема? Я не могу найти в Google ничего, связанного с этой темой.

Большое спасибо.

Это документация, за которой я следовал: http://www.swi-prolog.org/pldoc/doc_for?object=section%283,%279.4.9%27,swi%28%27/doc/Manual/foreigninclude.html%27%29%29

1

Решение

Я думаю тебе следует позвонить PL_initialise(argc, argv) раньше, но это отдельно, взгляните на Интерфейс C ++. Я использую это последнее широко в pqConsole проект, и я должен сказать, что это действительно много проще, чем интерфейс C.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]