我试过在没有运气的情况下搜索一个很多(可能是因为我没有使用正确的技术术语)。我的问题主要是关于链接静态库,编译和部署。在详细介绍之前,我的可执行文件在我的系统上编译得很好;主要问题是如何将这些解决方案部署为其他人的工作解决方案。我已经写了一个基本的使用OpenCV静态库的C++图像处理exe文件(我使用项目>属性>链接器>在VC++中链接这些文件>添加了附加的依赖关系,作为标准)。我通过设置VC++选项指向正确的包含文件进行编译...基本上,它都编译得很好。我现在希望能够在另一台PC上部署它。我知道我需要发布版本的exe +静态库...还有其他什么?使用外部库的OpenCV C++应用程序部署
一些库依赖于使用libjpeg和libpng;我不认为这些是标准的。此外,我已将链接器路径设置为相对静态库(例如resources/libs),因此它不依赖于系统,因此它知道在哪里查找库。基本的OpenCV数据结构工作正常(例如CvPoint),但是当我尝试使用CvLoadImage加载图像时,应用程序崩溃。如果我使用标准的ifstream fopen代替,我可以毫无问题地打开文件(但似乎无法将它带入IplImage OpenCV image strut--有人知道如何做到这一点吗?可能与IplImage-> imageData有关。) 。
非常感谢任何帮助。谢谢!
我建议改变你的标题 - 这是误导性的,不要不要使用便携式词语部署 – 2010-10-12 17:58:22
您永远不需要部署静态库(.lib),因为它们已链接到您的可执行文件中。如果您使用动态库(.dll),则需要部署。话虽如此,你有什么错误? – 2010-10-12 18:00:47
如上所述,libs将链接到.exe中,不需要单独部署。您可以使用Dependency Walker来确保您不会无意中链接到任何非系统DLL(这需要与您的.exe一起部署)。 – Nate 2010-10-12 18:22:14