【问题标题】:How to package all required libraries with .so file linux如何使用 .so 文件 linux 打包所有需要的库
【发布时间】:2018-08-04 04:30:13
【问题描述】:

我正在尝试移植一个应用程序,该应用程序是使用 c++ 组合编写的后端和 java 的前端组合。此应用程序依赖于库 opencv 2.4.13,该库已过时,以及多个其他库。我担心的是我不希望最终用户需要安装这些依赖程序,因为事实证明它们很难安装在除了少数几个 Linux 发行版之外的任何发行版上。我相信我正在寻找的术语是静态链接,但我目前对 c++ 编译有点不熟悉,所以我不确定我需要采取哪些步骤来使这些文件可移植。 java 应用程序要求这些文件是库,虽然我设法让它们在一台机器上编译,但问题似乎是让它们在编译后在另一台机器上运行。

【问题讨论】:

  • 您将遇到 JRE 没有静态链接到您的库的问题。你可能无法解决这个问题。祝你好运!

标签: java c++ linux object shared


【解决方案1】:

不要打扰 - 这也可能会给您带来许可问题,具体取决于您需要什么库。

相反,只需弄清楚您的应用程序应该在哪些平台上运行并将每个平台的库与您的 jar 一起打包 - 或者在启动时下载它们,或者将它们作为单独的包提供。您选择的确切机制取决于您的用例,关键是您不需要依赖系统范围的安装。

【讨论】:

  • 我想用它打包 .so 文件,但我不确定如何。当我在 java 中调用 System.load 时,我不知道如何确保 .so 会从本地目录加载库,所以我不确定如何用它打包所需的 .so 文件。
猜你喜欢
  • 2016-09-05
  • 1970-01-01
  • 2017-08-21
  • 2011-08-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-14
  • 1970-01-01
相关资源
最近更新 更多