我用C ++构建了一个应用程序,它与第三方共享库(如opencv)相链接。现在我需要打包这个应用程序并将其作为tar文件重新分发给用户,而不需要安装和编译第三方依赖项。在linux / Ubuntu中编译诸如opencv之类的库是一个非常痛苦的过程。
现在我想要确切地找到库中所有特定模块链接到可执行文件的内容,并将它们包含在分发tar中。我不想包括整个库,因为tar的大小将会爆炸。
仅包含ldd
命令检测到的库是否足够?任何指导或提示/起点都会有所帮助
答案 0 :(得分:1)
ldd
命令可用于显示可执行文件(或库)链接到的库。
答案 1 :(得分:1)
根据其定义" ldd - 打印共享对象依赖关系"。此外,我个人确认它的工作原理,因为我总是在专业项目中使用它。
此外,您可以在此处查看相同的问题和答案。 https://unix.stackexchange.com/questions/120015/how-to-find-out-the-dynamic-libraries-executables-loads-when-run
答案 2 :(得分:1)
我提示它适用于我(在使用ldd添加所有依赖项之后)是在virtualBox中安装一个新的linux并尝试分发tar,因为我将成为最终用户。这样你就可以检查一切正常。