C++ 打包:查找共享库依赖项

C++ Packaging: Finding shared library dependencies

我用 C++ 构建了一个应用程序,它与 opencv 等第 3 方共享库链接。现在我需要打包此应用程序并将其作为 tar 文件重新分发给用户,而无需他们安装和编译第 3 方依赖项。在linux/Ubuntu中编译opencv等库是一个痛苦的过程。

现在我想准确地找到链接到可执行文件的库的所有特定模块,并将它们包含在分发 tar 中。我不想包括整个库,因为 tar 的大小会爆炸。

仅包含 ldd 命令检测到的库就足够了吗?任何指导或 tip-off/starting 要点都会有所帮助

ldd 命令可用于显示可执行文件(或库)链接到哪些库。

根据其定义 "ldd - print shared object dependencies"。此外,我个人确认它可以正常工作,因为我一直在专业项目中使用它。

您也可以在此处查看相同的问题和答案。 https://unix.stackexchange.com/questions/120015/how-to-find-out-the-dynamic-libraries-executables-loads-when-run

我提示它对我有用(在使用 ldd 添加所有依赖项之后)是在 virtualBox 中安装一个新的 linux 并尝试分发 tar 因为我是最终用户。这样你就可以检查是否一切正常。