использование swig для генерации java-оболочек, где несколько классов наследуются от абстрактного класса с чисто виртуальными функциями - PullRequest
0 голосов
/ 23 марта 2019

Я хочу использовать swig для генерации файлов Java для моей платформы, которая имеет AbstractClass с pure virtual функциями, которые несколько классов реализуют и переопределяют эти функции.Теперь проблема в том, что DerivedClass использует внешнюю библиотеку, которая является только заголовком, и я делегировал ссылки и т. Д. cmake.

Однако, несмотря на то, что при запуске swig я предоставляю надлежащие cmake-модули для поиска этих библиотек, он игнорирует те классы, которые реализуют некоторый абстрактный класс из внешней библиотеки.

Как я могу использовать swig в моем случае и влияет ли наличие абстрактных классов с чисто виртуальными функциями на создание оболочек JNI?

Структура каталогов показана на рисунке ниже.

directory_structure

Мой файл swig выглядит следующим образом,

module mycpplib
%{
#include "src/include/AbstractClass.h"
#include "src/include/Enums.h"
#include "src/include/Data.h"
#include "src/include/Helper.h"
#include "src/DerivedClass.h"
%}

%include "src/include/AbstractClass.h"
%include "src/include/Enums.h"
%include "src/include/Data.h"
%include "src/include/Helper.h"
%include "src/DerivedClass.h"

%pragma(java) jniclasscode=%{
    static {
        System.loadLibrary("cpplib");
    }
%}
...