Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux JNI未满足链接错误:找到库,但可以';t绑定到函数点_Linux_Java Native Interface_Clion - Fatal编程技术网

Linux JNI未满足链接错误:找到库,但可以';t绑定到函数点

Linux JNI未满足链接错误:找到库,但可以';t绑定到函数点,linux,java-native-interface,clion,Linux,Java Native Interface,Clion,System.load找到了共享库,但现在看来函数调用的签名是错误的 主要类别: package java_main; /** * * @author james */ public class Main { static { System.out.println("static one"); System.load("/home/james/Desktop/NewApiWork_scratch/build/Debug/libmodule.so")

System.load找到了共享库,但现在看来函数调用的签名是错误的

主要类别:

package java_main;

/**
 *
 * @author james
 */
public class Main {
    static {
        System.out.println("static one");
        System.load("/home/james/Desktop/NewApiWork_scratch/build/Debug/libmodule.so");
        System.out.println("static two");
    }

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        Main ma = new Main();
        System.out.println("public static void main(String[] args)");
        try
        {
            ma.MAIN();
        }
        catch (Throwable e)
        {
            if (e.getCause() != null)
            {
                System.out.printf("Cause: %s\n", e.getCause().toString());
            }
            System.out.println(e.getMessage());
            e.printStackTrace(System.out);
        }
    }
    public native void MAIN();

}
main.c文件:

//
// Created by James on 8/30/2015.
//

#include "main.h"
#include <stdio.h>

/*
 * Class:     java_main_Main
 * Method:    MAIN
 * Signature: ()V
 */
JNIEXPORT void JNICALL _Java_java_1main_Main_MAIN
        (JNIEnv *env, jobject obj) {
    puts("Java_java_1main_Main_MAIN");

}
我正在Linux上使用CLion

我对正在发生的事感到不知所措。 当我得到更多的反馈时,我会补充更多的问题

更新

它是标识符上的前导下划线。在windows中,Java无法正确识别stdcall,您必须在导出的函数中添加一个前导下划线。我所做的就是删除前导下划线

更新到更新


这可能是mingw的东西,而不是Java。不久前我处理过这个问题,我记不起责任方。

以及如何编辑这个问题。我可以通过手机进行编辑。刚刚找到编辑超链接
   /usr/bin/java -Djava.library.path=./build/Debug -cp .:javastubs_16 java_main.Main
    static one
    static two
    public static void main(String[] args)
    java_main.Main.MAIN()V
    java.lang.UnsatisfiedLinkError: java_main.Main.MAIN()V
        at java_main.Main.MAIN(Native Method)
        at java_main.Main.main(Main.java:27)