gpt4 book ai didi

c++ - 使用 SWIG 将 C++ 代码与 perl 接口(interface)

转载 作者:行者123 更新时间:2023-11-30 05:34:06 25 4
gpt4 key购买 nike

我有一组使用 Boost 和 STL 库的 C++ 类,目前正在 Linux 中使用这些类来执行。我想使用 SWIG 为这个 C++ 代码创建一个 Perl 接口(interface)。

假设我有 10 个类 1..10,如果我想使用 SWIG 使用 perl 创建一个类 1 的接口(interface),并且 main() 函数在类 5 中

我的界面文件(*.i)应该是什么样子的?我应该以什么格式构建我的 C++ 代码?

最佳答案

您无需包装 main() 即可为 Class1 创建接口(interface)。如果只想在 perl 中有那个特定的类,那么你应该写

%module <your_module_name>

%{
#include "class1.h"
%}

%include "class1.h"

SWIG 将扫描 class1.h 并为它将遇到的每个类和函数创建相应的包装器。您可以使用 %ignore以防止某些符号被包装。如果Class1的header中还有其他类型,比如说Class2和Class3,比如

class Class1 {
Class2 foo();
Class3 bar();
};

SWIG 将发出错误,因为它不知道如何包装这些类型。您也需要包装它们,或者如果您不想公开其他类,您可以编写

%import "class2.h"
%import "class3.h"

这会将必要的类型信息告知 SWIG,但不会创建包装器。

关于c++ - 使用 SWIG 将 C++ 代码与 perl 接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34409395/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com