如何用.so文件linux打包所有需要的库



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

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

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

最新更新