从XCode中的C-Programm到SWI-Prolog的接口

我想使用MAC OS X下的XCode IDE到SWI-Prolog从c代码接口。

我已经包含了头文件并使用以下示例代码:

#include  #include  #include  int main(int argc, const char * argv[]) { char *av[10]; int ac = 0; av[ac++] = "/opt/local/lib/swipl-6.2.2/bin/i386-darwin12.2.1/swipl"; av[ac++] = "-x"; av[ac++] = "mystate"; av[ac] = NULL; #ifdef READLINE /* Remove if you don't want readline */ PL_initialise_hook(install_readline); #endif if ( !PL_initialise(ac, av) ) PL_halt(1); PL_halt(PL_toplevel() ? 0 : 1); printf("done...\n"); return 0; } 

我还在构建设置中链接到头和lib路径:

标题搜索路径:/opt/local/lib/swipl-6.2.2/include

库搜索路径:/opt/local/lib/swipl-6.2.2/lib/i386-darwin12.2.1

但在运行代码时,我收到以下错误:

 Undefined symbols for architecture x86_64: "_PL_halt", referenced from: _main in main.o "_PL_initialise", referenced from: _main in main.o "_PL_toplevel", referenced from: _main in main.o ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation) 

有没有人可以帮助我运行我的代码?

谢谢你提前和亲切的问候

Solick

即使您在设置中设置了正确的路径,它也不会自动找到要链接的正确库。 您还必须添加实际的库。

我在Ubuntu工作(是的,在Windows中,仍然),我开始欣赏pkg-config支持。

如果您已经熟悉它,请注意在本地编译时,SWI-Prolog会生成一个目录〜/ lib / pkgconfig。

然后你可以将该目录添加到pkg-config配置中,并使用SW与(IMHO)的良好支持。