gpt4 book ai didi

java - System.load 给出不满意的链接错误

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:23:13 24 4
gpt4 key购买 nike

我有一个使用本地库 libclient.so 的应用程序。它依赖于另一个 .so 文件。

我尝试在 linux 32 位系统上使用命令行设置 LD_LIBRARY_PATH:

export LD_LIBRARY_PATH=/home/usb:${LD_LIBRARY_PATH}

设置路径为:

tushar@tushar-desktop:~$ echo $LD_LIBRARY_PATH
/home/usb:/home/tushar/workspace/MinutiaeApp/resources:

但是当我尝试运行我的代码时,我在 LD_LIBRARY_PATH 中得到了 null 并且我认为因此我得到了不满意的链接错误。

这是我的测试代码:

String lib = "libclient.so";
String ld_lib_path = System.getenv("LD_LIBRARY_PATH");
System.out.println("***LD_LIBRARY_PATH ***"+ ld_lib_path); // **GIVING NULL**
String[] paths = ld_lib_path.split(":");
for(int i=0; i<paths.length; i++) {
String p = paths[i];
File x = new File(p, lib);
System.out.println("***Path name *****" + i + " : "+ x.getAbsolutePath());
if (x.exists()) {
System.out.println("Exist");
System.load(x.getAbsolutePath());
break;
}
}

实际代码:

System.load("/home/usb/libclient.so"); // **HERE I am getting Unsatisfied Link Error**

更新:我在 VM 参数中设置了 LD_LIBRARY_PATH,并且在我的 java 代码中运行以下行时获取路径名。这样路径就设置好了。

 String ld = System.getProperty("LD_LIBRARY_PATH");

现在的问题是,当我尝试使用 System.load("/home/arun/libgrfinger.so") 加载 libgrfingerjava.so 时,我仍然遇到不满足链接错误。

我尝试加载其他一些 .so 文件,我能够做到这一点。我不知道为什么我只在 libgrfingerjava.so 上出错。

我正在整合 Griaule Finger SDK 2009进入我的手指阅读应用程序。

最佳答案

您是否在同一个 shell 中运行您的程序?

您需要在设置 LD_LIBRARY_PATH 的同一个 shell 中运行您的应用程序,如果您在“窗口控制台”中修改环境并在 Eclipse 或其他窗口中运行您的程序,则它不起作用。

更新

如果您使用的是 Eclipse,在您的菜单中,转到项目 --> 属性 --> 运行/调试设置,然后选择您正在使用的配置并进行编辑,您将看到这个窗口:

enter image description here

选择“环境”选项卡,然后单击“新建”,剩下的你就知道该做什么了。

关于java - System.load 给出不满意的链接错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17878571/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com