我是初学者,在C ++和Lisp之间使用SWIG进行接口。我遵循SWIG的文档,但我遇到了问题。 这是我想要接口的简单程序(它可以很容易地在Lisp中完成,但它是要了解如何将C ++代码导入Lisp):
TEST.CPP:
#include "test.hpp"
int test(int x, int y) {
std::cout << x+y;
return 0;
}
test.hpp:
#include <iostream>
int test(int x, int y);
为了使用SWIG,我创建了接口文件:
test.i:
%module test
%include <test.hpp>
并且,我执行以下命令行:
$ swig -c++ -cffi test.i
$ c++ -c test_wrap.cxx
但是在编译test_wrap.cxx时,终端说:
test_wrap.cxx:193:19: error: use of undeclared identifier 'test'
result = (int)test(arg1,arg2);
^
1 error generated.
任何人都可以帮助我吗?
答案 0 :(得分:3)
这是一个修改过的test.i
,其余的编译:
%module test
%{
#include "test.hpp"
%}
%include <test.hpp>
我跟着this presentation(第24页),显然你需要在生成的包装器中插入include
指令。