首页 > 解决方案 > 为覆盖 std::exception 的库生成 swig 接口时出错

问题描述

我正在尝试为一个库生成一个 swig 接口,该库有一个继承自std::exception. 我似乎无法让它工作。

这是一个简单的例子。代码mylib.h

#pragma once

#include <exception>

class CustomException : public std::exception
{

};

这是代码mylib.i

%module mylib
 %{
 #include "mylib.h"
 %}

/*
Run without anything:
mylib.h:5: Warning 401: Nothing known about base class 'std::exception'. Ignored.
*/

/*
Run with: %include <exception>
mylib.i:11: Error: Unable to find 'exception'
*/

/*
Run with: %include exception.i 
mylib.h:5: Warning 401: Nothing known about base class 'std::exception'. Ignored.
*/

%include "mylib.h"

正如您在 中的评论中看到的那样mylib.i,swig 似乎很难弄清楚是什么std::exception

标签: c++swig

解决方案


使用%include <std_except.i>

%module test
%include <std_except.i>
%inline %{
class CustomException : public std::exception
{
};
%}

推荐阅读