C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了使用外部库进行OpenCV c应用程序部署大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我试过没有运气的搜索很多(可能是因为我没有使用正确的技术术语).我的问题主要与链接静态库,编译和部署有关.在我进入细节之前,我的可执行文件我的系统上编译良好;主要问题是如何将这些作为工作解决方案部署到其他人.

我编写了一个使用OpenCV静态库的基本c图像处理exe(我在VC中使用Project> Properties> Linker>链接这些,作为标准添加其他依赖项).我通过设置VC选项指向正确的包含文件编译…基本上,它编译都很好.我现在希望能够在另一台PC上部署它.我明白我需要exe静态库的发布版本……还有什么吗?

一些lib依赖于使用libjpeg和libpng;我不认为这些是标准的.此外,我将静态库的链接器路径设置为相对的(例如资源/库),因此它不依赖于系统,因此它知道在哪里找到库.基本的OpenCV数据结构工作正常(例如CvPoint),但是当我尝试使用CvLoadImage加载图像时,应用程序崩溃了.如果我使用标准的ifstream fopen,我可以毫无问题地打开文件(但似乎无法将其放入IplImage OpenCV图像支柱中 – 有没有人知道如何做这些?可能与IplImage-> imageData有关. ).

任何帮助非常感谢.谢谢!

解决方法

静态库不必(也不应该)与应用程序一起分发.静态库由链接器内置到exe文件中. OpenCV崩溃的原因是它无法找到libpng / libjpeg dll. OpenCV不会将它们链接为静态依赖项,而是在运行时使用LoadLibrary / dlopen API.如果这些调用失败,可能没有很好的恢复,应用程序崩溃.如果包含libpng / libjpeg库,则应修复问题. 还要注意 – 一些.lib文件不是真正的静态库,而只是一个薄层,允许链接器在DLL中找到适当的函数生成动态链接代码,这样程序员就不必手动执行.您通常会看到.lib文件的大小非常小,并且您的应用程序声称它在exe启动时无法找到DLL入口点.
@H_696_18@

大佬总结

以上是大佬教程为你收集整理的使用外部库进行OpenCV c应用程序部署全部内容,希望文章能够帮你解决使用外部库进行OpenCV c应用程序部署所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。