编译包装器时出现 SWIG [C++ to Lisp(CFFI)] 错误
SWIG [C++ to Lisp(CFFI)] error when compiling wrapper
我是 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.
有人可以帮我吗?
这是一个修改后的 test.i
,它使其余的编译:
%module test
%{
#include "test.hpp"
%}
%include <test.hpp>
我遵循了 this presentation(第 24 页),显然您需要在生成的包装器中插入 include
指令。
我是 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.
有人可以帮我吗?
这是一个修改后的 test.i
,它使其余的编译:
%module test
%{
#include "test.hpp"
%}
%include <test.hpp>
我遵循了 this presentation(第 24 页),显然您需要在生成的包装器中插入 include
指令。