未找到 /usr/local/lib 中的库

2024-01-01

我正在使用名为的框架构建一个应用程序ohNet http://wiki.openhome.org/wiki/OhNet。 构建框架后,可以通过以下方式安装框架make install。默认情况下,库安装在/usr/local/[lib|include]文件夹。好的。

我正在使用eclipse进行开发。为了使用这个库,我必须设置库的包含路径(在本例中usr/local/include/ohNet),设置链接器搜索路径(-L)(/usr/local/lib/ohNet)和特定库(-l)(在本例中我选择一个名为libohNet.so which is在此文件夹中。 当我在 Eclipse 中构建项目时,它工作正常,但是如果我尝试运行该程序,我会遇到以下消息:

error while loading shared libraries: libohNet.so: cannot open shared object file: No such file or directory

我已经仔细检查过这个,并且文件libohNet.so就在这个目录下! 找不到这个文件是什么原因?

我在谷歌上搜索并找到了一些帖子,说库安装有问题/usr/local/lib代替/usr/lib see here http://lonesysadmin.net/2013/02/22/error-while-loading-shared-libraries-cannot-open-shared-object-file/... 我是否需要配置一些额外的设置eclipse使ld识别该路径中的库吗?对此有什么解决办法呢?

regards


这是运行时错误,而不是构建错误。设置-L标志对运行时链接器没有任何作用。您需要做的是告诉运行时加载器也在 /usr/local/lib 中查找库。您可以通过两种方式做到这一点。首先是添加路径LD_LIBRARY_PATH环境变量:



export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/lib"
  

其次是更新运行时链接器的配置文件。这可以在 /etc/ld.so.conf 文件中发生,只需输入以下行:



/usr/local/lib
  

该文件中的某处,或者通过在包含新路径的 /etc/ld.so.conf.d/ 目录中创建新的 *.conf 文件。例如:



/etc/ld.so.conf.d/99local.conf
  

只是:



/usr/local/lib
  

在里面。这是推荐的方法,因为它允许您将自定义库路径与系统设置的路径分开。 (“99”前缀是为了确保该文件与其他文件相比是最后加载的,这样它就不会抢占可能包含相同库的系统路径。)

在 /etc 中修改/创建文件后,您需要运行:



ldconfig
  

作为 root 使更改生效。 (此命令更新 /etc/ld.so.cache 文件,这是运行时链接器使用的实际文件。)

二进制文件还有另一种在运行时查找所需库的方法。实际上,您可以将库路径硬编码到可执行文件本身中。这是通过设置所谓的“rpath”来完成的。这是一个链接器选项,必须从 gcc(或 g++)传递到链接器,因此-Wl必须使用选项。链接器选项是-rpath=PATH。因此,您需要将其添加到链接标志中:



-Wl,-rpath=/usr/local/lib
  

不过,我不建议您这样做。当您将库与可执行文件(可能与安装程序一起)和相对 rpath(使用rpath $ORIGIN然后使用绝对一(例如,当您安装在 /opt 中时)在运行时查找这些捆绑的库。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

未找到 /usr/local/lib 中的库 的相关文章

随机推荐

  • 使用 JNI 从单独的线程调用静态 Java 方法

    我正在尝试在 android 中使用 JNI 来创建一个函数指针 我正在使用的本机库将其调用转发给 java When initializeStateController被调用 使用创建一个新线程pthread create每当状态控制器的
  • 使用 bash shell 脚本替换文件中的字符串

    我想在文件中找到一个字符串 进行一些操作并将该字符串放回文件中 下面给出的是我需要的示例 cat sample txt TimeStamp gt 123456 Name gt ABC Mail gt email protected cdn
  • 在makefile中写入依赖项,用makefile

    基于一些SO问题 以及发现的一些进一步的参考 我正在尝试构建一个能够 查找 给定目录 SRC the cpp待编译的文件 编译 cpp 生产 o物体 产生 so每个共享对象 o以前编译的 为了实现这一点 make 文件应该做的是 查找 给定
  • 解决方案。有代理时如何install_github

    当您尝试从 GitHub 存储库安装某些 R 包时 install github rWBclimate ropensci 如果您出现以下错误 Installing github repo s rWBclimate master from r
  • 从 mysql 网站检索时未选择数据库

    我有一个 mysql 数据库 我正在尝试从我们的网站主机 godaddy 检索该数据库 我遵循了一种似乎正确的格式 但它告诉我 java sql SQLException No database selected Code public s
  • 无缝循环音频 html5

    有人知道如何实现音频标签的无缝循环吗 我在想一些基于javascript的东西 我有一个循环 比如 1 小节 我希望它循环并保持节奏 所以我需要循环平滑 无间隙 当我简单地将 循环 设置为 true 时 它 会滞后并且不会保持节奏 虽然仍然
  • 在 JBoss Seam 上实现 SOAP Web 服务的最佳方法是什么?

    我需要在 Jboss Seam 2 1 0 上实现 SOAP Web 服务 这个想法是将无状态 bean 方法导出为 Web 服务 然而 我发现了两种方法 第一个是使用 Seam 自己的 Web 服务注释 这样做的问题是缺乏文档 第二个 是
  • C# ASP.NET MVC 控制器单元测试

    我对单元测试有点陌生 我想知道我这样做是否正确 Controller public ActionResult Index return View Message Index TestMethod public void MessageVie
  • 在张量流中compute_gradients返回什么

    mean sqr tf reduce mean tf pow y y 2 optimizer tf train AdamOptimizer LEARNING RATE gradients variables zip optimizer co
  • 在 Angularjs 中处理 $http.get 和 $http.post 错误

    Folks 我在用 http get and http post遍布我的代码 我对如何以全局方式处理这些调用期间发生的错误感到有点迷失 目前我有 success doSomething error doSomething 每次通话时 我想更
  • Lua 模式中的交替运算符是什么?

    在正则表达式中 用于交替 Lua模式中对应的字符是什么 首先 注意Luapatterns http www lua org manual 5 1 manual html 5 4 1不是正则表达式 它们是自己更简单的匹配语言 具有不同的优点和
  • 语音通话期间麦克风录制的音频被静音

    我正在尝试构建从麦克风记录音频以供以后处理的应用程序 除了以下问题之外 一切都运行得很好 在语音通话 传入和传出 期间 录制的文件不会获取任何音频数据 它只包含 NULL 我正在使用 AudioRecorder 和 MediaRecorde
  • *ngFor 使用函数,返回一个循环

    当我在 Angular 中使用 ngFor 和返回数据的函数时 该函数会被多次调用 有时甚至会导致循环 应用程序组件 ts export class AppComponent getArray string here i know when
  • gcc 如何在 constexpr 上下文中编译 C 函数?

    鉴于C 标准库 当前 不提供 cmath 函数的 constexpr 版本 https stackoverflow com questions 42189190 why doesnt the c standard library provi
  • 如何测试可续订订阅(App Store)

    我正在我的应用程序中实现自动更新订阅 我想知道是否有一种方法可以模拟订阅期结束并创建新交易的时间 该应用程序连接到一个在线服务 该服务始终跟踪用户以及他们是否具有 高级访问权限 正如我所理解的 有两种方法可以检测交易何时进行 该应用程序已启
  • Python 多索引数据框删除最大值

    我正在与 python pandas 中的 MultiIndex DataFrame 作斗争 假设我有一个像这样的 df count day group name A Anna 10 Monday Beatrice 15 Tuesday B
  • 对数据库进行 docker 化(容器化)有意义吗?

    我可以理解 Docker 化无状态服务背后的好处 例如 Web 服务器 应用程序服务器 负载均衡器等 如果您在机器集群上运行这些服务 则可以很容易地以较低的开销移动这些容器 但我不明白容器化数据库背后的目的是什么 数据库连接到持久存储在特定
  • 打开特定 URL 后将用户从浏览器重定向到我的应用程序

    我编写了一个应用程序 用户点击购买按钮后他 她重定向到互联网浏览器 例如 chrome 付款后我希望他回到我的应用程序 我的活动 所以我发现我应该使用意图过滤器 但是这对我不起作用 我在清单中添加这些代码
  • 如何通过安装驱动程序来检查Windows是否繁忙?

    我编写了通过 dpinst exe 安装 USB 设备驱动程序的程序 在程序启动时 我想通过搜索 安装 更新某些驱动程序来检查 Windows 是否繁忙 我想避免的主要情况是在 Windows 搜索插入设备的驱动程序时启动 dpinst e
  • 未找到 /usr/local/lib 中的库

    我正在使用名为的框架构建一个应用程序ohNet http wiki openhome org wiki OhNet 构建框架后 可以通过以下方式安装框架make install 默认情况下 库安装在 usr local lib includ