Я хочу использовать swig
для генерации файлов Java для моей платформы, которая имеет AbstractClass
с pure virtual
функциями, которые несколько классов реализуют и переопределяют эти функции.Теперь проблема в том, что DerivedClass
использует внешнюю библиотеку, которая является только заголовком, и я делегировал ссылки и т. Д. cmake
.
Однако, несмотря на то, что при запуске swig я предоставляю надлежащие cmake-модули для поиска этих библиотек, он игнорирует те классы, которые реализуют некоторый абстрактный класс из внешней библиотеки.
Как я могу использовать swig в моем случае и влияет ли наличие абстрактных классов с чисто виртуальными функциями на создание оболочек JNI?
Структура каталогов показана на рисунке ниже.
Мой файл 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");
}
%}