将所有库依赖项包含到可执行文件中 Linux
Posted
技术标签:
【中文标题】将所有库依赖项包含到可执行文件中 Linux【英文标题】:Include all library dependencies into an executable file Linux 【发布时间】:2015-06-22 08:42:50 【问题描述】:提前致谢。我需要在具有 Opencv 库的所有依赖项的不同机器上使用 linux C++ 应用程序。 我应该在每台机器上安装 opencv 还是只使用库? 如果是这样,我该怎么做?
【问题讨论】:
您可以静态链接库,创建一个包含大多数库的巨大可执行文件。或者您可以在每个系统上安装 OpenCV,但您不需要只安装基础库的开发包。 谢谢!如何静态链接所有库?我将 -static 放在 makefile 中,但它只是链接我的库而不是 Opencv 的! 我不是很推荐,但是在链接的时候加上-static
标志。
你可以用cmake -DBUILD_SHARED_LIBS=OFF
构建静态opencv库
【参考方案1】:
OpenCV 是一个库,因此需要将其安装在您打算运行使用 opencv 的程序的机器上。按照http://opencv.org/downloads.html 上您感兴趣的目标的下载说明进行操作。如果您打算在多台机器上安装程序,也可以随程序一起创建安装脚本。
【讨论】:
以上是关于将所有库依赖项包含到可执行文件中 Linux的主要内容,如果未能解决你的问题,请参考以下文章