Крашится Java класс с динамической библиотекой под капотом. Библиотека основана на QCoreAppliacation. Помогите собрать, если это возможно?
$ cat src/wrapper/Client.java 
package wrapper;
import java.io.IOException;
public class Client {
    native long create();
    native void start(long ptr);
    static {
        System.load(System.getProperty("user.dir")+"/bin/libclient.so");
    }
     public static void main(String[] args) throws Exception{
        Client client = new Client();
        long ptr = client.create();
        client.start(ptr);
        char ch;
        ch = (char) System.in.read();
    }
    
}
Заголовочный JNI файл сгенерирован был автоматически
$ cat bin/wrapper_Client.h 
#include <jni.h>
#ifndef _Included_wrapper_Client
#define _Included_wrapper_Client
#ifdef __cplusplus
extern "C" {
#endif
JNIEXPORT jlong JNICALL Java_wrapper_Client_create
  (JNIEnv *, jobject);
JNIEXPORT void JNICALL Java_wrapper_Client_start
  (JNIEnv *, jobject, jlong);
#ifdef __cplusplus
}
#endif
#endif
Реализация JNI:
$ cat bin/wrapper_Client.cpp 
#include "wrapper_Client.h"
#include "qlibrary.h"
JNIEXPORT jlong JNICALL Java_wrapper_Client_create (JNIEnv *, jobject)
{
    jlong jresult = 0;
    Controller *controller;
    runApp(controller);
    *(Controller**) &jresult = controller;
    return jresult;
}
JNIEXPORT void JNICALL Java_wrapper_Client_start (JNIEnv *, jobject, jlong jptr)
{
    Controller *controller;
    controller = *(Controller **) &jptr;
    start(controller);
    
}
Команда сборки
g++ -std=c++11 -shared -fPIC -DQLIBRARY_LIBRARY -DQT_DEPRECATED_WARNINGS -DQT_NO_DEBUG -DQT_CORE_LIB -I. -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -o libclient.so  -I/usr/lib/jvm/java-11-openjdk-amd64/include/ -I/usr/lib/jvm/java-11-openjdk-amd64/include/linux/ wrapper_Client.cpp -lqlibrary -lQt5Core -lpthread
Имеется библиотека libqlibrary.so. Она установлена в системе и в С++ приложении нормально работает.
class Controller;
void runApp(Controller*&);
void start(Controller*&);
...
void runApp(Controller* &controller)
{
    std::thread th
    (
        [&]
        {
            int argc = 0;
            char *argv = nullptr;
            QCoreApplication app(argc, &argv);
            controller = new Controller;
            app.exec();
        }
    );
    th.detach();
}
void start(Controller*& controller)
{
    controller->start();
}
...
Запустить байт код не удается:
$ java -classpath bin wrapper.Client
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x00007f4c9a4d08f4, pid=26982, tid=26984
#
# JRE version: OpenJDK Runtime Environment (11.0.7+10) (build 11.0.7+10-post-Ubuntu-2ubuntu218.04)
# Java VM: OpenJDK 64-Bit Server VM (11.0.7+10-post-Ubuntu-2ubuntu218.04, mixed mode, sharing, tiered, compressed oops, g1 gc, linux-amd64)
# Problematic frame:
# V  [libjvm.so+0x7178f4]


