我正在尝试为prolog构建一个外部模块。
我已经在Unix下取得了成功,但我无法在Windows下完成。我尝试了由GWI Prolog提供的MinGW' g++
命令和swipl-ld.exe
。
以下是我尝试的命令:`
g++ -I "C:\Program Files\swipl\include" -o test test.cpp
swipl-ld -o test test.cpp
两次都是相同的undefined reference to 'PL_some_function'
,几次。
这是我的test.cpp
:
#include <SWI-cpp.h>
#include <iostream>
using namespace std;
PREDICATE(hello, 1)
{ cout << "Hello " << (char *)A1 << endl;
return TRUE;
}
我认为这是一个导入问题,但我不知道文件的位置以及我必须如何操作。
编辑:PL_some_function
的例子:
test.obj:test.cpp:(.text$_ZN7PlTermvC1Ei[__ZN7PlTermvC1Ei]+0x10): undefined reference to `PL_new_term_refs'
test.obj:test.cpp:(.text$_ZN11PlExceptionC2Ev[__ZN11PlExceptionC2Ev]+0x1b): undefined reference to `PL_exception'
test.obj:test.cpp:(.text$_ZN11PlExceptionC2Ev[__ZN11PlExceptionC2Ev]+0x3a): undefined reference to `PL_fatal_error'