opencv 和 c++ 编译版本无需运行库
Posted
技术标签:
【中文标题】opencv 和 c++ 编译版本无需运行库【英文标题】:open cv and c++ compile release without need library for run 【发布时间】:2017-09-03 19:33:51 【问题描述】:首先我有简单的c++代码和opencv
不管代码是什么
现在在 Windows 中,我使用了 Visual Studio,并将打开的 cv 库添加到 Visual stuio 并编译它及其工作,但是当我将它发送到另一台电脑时,它需要打开 cv 库,它很难发送所有库,所以我找到了程序需要一些文件,如
opencv_highgui2410.dll ..... .dll opencv_objdetect2410.dll
这使我的程序在没有库的情况下运行
现在我用代码块编译后转向 ubuntu linux 这张照片将向您展示我如何链接库
和
当我将程序发送到另一台电脑时,我现在构建程序并运行它的工作,它给出了一些文件未找到的错误
error while loading shared libraries: libopencv_core.so.2.4
我复制此文件libopencv_core.so.2.4
并将其添加到程序旁边仍然相同的错误似乎不像 windows
任何解决方案都让我编译 opencv 程序并运行程序,而不需要完整的库只是它的一些文件
或任何想法添加项目需要在程序旁边运行的文件 (libs),就像 windows 一样
【问题讨论】:
有什么原因不能简单地使用apt get
安装opencv?
@Frank 我在主机上上传了我的程序这个问题程序给了我error while loading shared libraries: libopencv_core.so.2.4
我的意思是,将依赖项作为二进制文件分发虽然可行,但如果可以的话,您确实希望避免这种情况,尤其是对于可以通过包管理器安装的库。
现在:/我需要在 linux 主机上运行程序的解决方案
我的问题仍然存在,为什么不在主机上运行apt-get install opencv
?
【参考方案1】:
我认为这应该对您有所帮助。 但是从 cmets 来看,我担心你的 linux 经验很少,我希望这会有所帮助:
https://s1meonov.wordpress.com/2010/12/27/opencv-static-linking-gnulinux-gcc/
(首先,一定要了解什么是共享库和静态库,它们是如何工作的以及它们对软件许可证的影响,还一定要了解如何在 linux 中安装程序。安装请查看此链接:@ 987654322@)
【讨论】:
我没有一点 linux 经验,我只是安装它并在今天使用它:D @so 我必须将它编译为静态库? 没有。正如 Frank 在之前的 cmets 中所说,静态链接是“坏的”和“旧的”。如果可以,最好的方法是在 linux 上使用 apt-get 安装 opencv。 apt-get 是一个“某种”应用商店(Linux 用户请原谅 :))))查看在 linux 中安装的初学者指南,阅读后应该更清楚) 这样做,opencv 将作为共享库安装在您的 linux 系统上。这是最佳实践。此外,如果您想分发(例如销售)您的软件,则不能将其与包含的静态库一起发布。这涉及我自己不太了解的许可证和法律内容,但我认为如果您将 opencv 作为静态库与您的项目一起分发,您还应该开源您的项目以便使用 opencv 许可证)以上是关于opencv 和 c++ 编译版本无需运行库的主要内容,如果未能解决你的问题,请参考以下文章
MATLAB + Mex + OpenCV:链接和编译正确,但在运行时找不到库