Ошибка при создании интерфейса Swig для библиотеки, которая переопределяет std :: exception - PullRequest
0 голосов
/ 26 октября 2018

Я пытаюсь сгенерировать интерфейс 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.

1 Ответ

0 голосов
/ 27 октября 2018

Использование %include <std_except.i>:

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