Eclipse Jni在终端作品中编译时不满意
Eclipse JNI UnsatisfiedLinkError when compiling in terminal works
我整天都在尝试获得一个基本的JNI项目来在Eclipse工作。我刚刚让它在Eclipse之外工作(请参阅JNI代码中的undylinkerror),一旦我将其转移到Eclipse,我就得到了一个
Exception in thread "main" java.lang.UnsatisfiedLinkError: no HPAProgram in java.library.path
对于我的Java文件(加载库行)中的第10行。我不知道发生了什么事。日食和命令行上的编译之间有什么不同?我正在使用OS X,并且能够生成.dylib,所以这不是问题。这是我的代码:
makefile:
# Define a variable for classpath
CLASS_PATH = ../bin
# Define a virtual path for .class in the bin directory
vpath %.class $(CLASS_PATH)
all: libhpaprogram.dylib
# $@ matches the target, $< matches the first dependancy
libhpaprogram.dylib:
cc -v -c -fPIC -I/System/Library/Frameworks/JavaVM.framework/Versions/A/Headers/ HPAProgram.c++ -o libhpaprogram.o
libtool -dynamic -lSystem libhpaprogram.o -o libhpaprogram.dylib
HPAProgram.h : HPAProgram.class
javah HPAProgram
clean:
rm HPAProgram.h libhpaprogram.o libhpaprogram.dylib
hpapragram.c
/*
* HPAProgram.c++
*
* Created on: Feb 4, 2014
* Author: zalbhathena
*/
//#include <jni.h>
#include <stdio.h>
#include "HPAProgram.h"
JNIEXPORT void JNICALL Java_HPAProgram_sayHello (JNIEnv *env, jobject obj) {
printf("Hello World!n");
}
hpapragram.java:
public class HPAProgram {
public native void sayHello();
public static void main(String[] args) {
System.loadLibrary("HPAProgram");
HPAProgram s = new HPAProgram();
s.sayHello();
}
}
hpapragram.h
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class HPAProgram */
#ifndef _Included_HPAProgram
#define _Included_HPAProgram
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: HPAProgram
* Method: sayHello
* Signature: ()V
*/
JNIEXPORT void JNICALL Java_HPAProgram_sayHello
(JNIEnv *, jobject);
#ifdef __cplusplus
}
#endif
#endif
我弄清楚了!我在此线程中找到了它如何调试Java System.linux中的LoadLibrary错误?
"据我所知,日食不使用ld_library_path。设置正确的本机库路径的最简单方法是转到项目属性 -> java构建路径 ->库,然后展开JRE System库条目或(如果有)使用您的本机库的JAR文件,选择"本地库位置",然后单击"编辑...",然后选择您的库中的文件夹。因此,如果您从外eclipse启动程序,则必须将其包括在命令行中。"
相关文章:
- 在turbo c++中编译.不在视觉工作室
- C 与C++编译不兼容 - 不命名类型
- JNI 不满意链接错误: 动态链接库 (DLL) 初始化例程失败
- C++ JNI 不满意的链接错误
- GCC 中使用 -O3 的共享库编译不会导出与 -O0 中那样多的符号
- 编译问题LD:不满意的符号
- 不满意的链接错误,当使用LLVM运行javacpp预设时
- 关于在 ndk r15 中的类中初始化的静态成员的不满意链接错误
- 使用python3配置的Pybind11编译不起作用
- 使用 SWIG 将 c++ 包装到 java 不满意的链接错误: HeaderJNI.new_Test()J.
- 发生 JNI 调用 c++ dll "不满意链接错误: 对内存位置的无效访问"
- Eclipse Jni在终端作品中编译时不满意
- JNI代码中的不满意的LinkError
- 本机方法中的不满意的Linkerror
- 如何在Windows上使用MakeFile编译不受管理的 *.dll
- 不满意的链接错误在iOS但不是Android上,loadLibrary总是成功的
- JNI 和 C++ - 不满意的链接错误
- C++交叉编译不处理换行输入文本文件
- 首先C++程序无法编译 - 不确定将第三方库放在哪里
- 使用API21编译时出现不满意的链接错误