我已经用C++构建了一个应用程序,该应用程序与第三方共享库(如opencv)链接。现在我需要打包这个应用程序并将其作为tar文件重新分发给用户,而无需安装和编译第三方依赖项。在Linux/Ubuntu中编译诸如opencv之类的库是一个非常痛苦的过程。C++封装:查找共享库依赖关系
现在我想要找到库的所有特定模块都与可执行文件链接的内容,并将它们包含在分发tar中。我不想包括整个图书馆,因为焦油的大小会爆炸。
仅仅包含由ldd
命令检测到的库是否足够了?任何指导或提示/起点将有帮助
我已经用C++构建了一个应用程序,该应用程序与第三方共享库(如opencv)链接。现在我需要打包这个应用程序并将其作为tar文件重新分发给用户,而无需安装和编译第三方依赖项。在Linux/Ubuntu中编译诸如opencv之类的库是一个非常痛苦的过程。C++封装:查找共享库依赖关系
现在我想要找到库的所有特定模块都与可执行文件链接的内容,并将它们包含在分发tar中。我不想包括整个图书馆,因为焦油的大小会爆炸。
仅仅包含由ldd
命令检测到的库是否足够了?任何指导或提示/起点将有帮助
通过其定义“ldd - 打印共享对象依赖关系”。此外,我个人确认它的工作原理,因为我一直在专业项目中使用它。
此外,你可以在这里检查相同的问题和答案。 https://unix.stackexchange.com/questions/120015/how-to-find-out-the-dynamic-libraries-executables-loads-when-run
ldd
命令可用于显示可执行文件(或库)链接到的库。
我提示它适用于我(在添加所有与ldd的依赖关系之后)是在virtualBox中安装一个新的linux并尝试配置tar,因为我会是最终用户。这样你就可以检查一切正常。
不要忘记检查你是否被允许重新分配他们,阅读他们的许可证。 [OpenCV允许你这样做](http://opencv.org/license.html)。 – Berriel