我是Visual Studio OpenCV的新手。
我在我的项目中使用Visual Studio 2013,opencv和c ++。
我将opencv和其他库配置(复制路径)到我的计算机环境系统。
在Visual Studio中运行项目后,通常,项目中将存在一个exe文件。
我可以将exe文件复制到项目文件夹中,然后复制到计算机的其他位置,它将正常运行。
这是因为我的计算机环境系统配置有opencv和其他库。
我想对其他计算机执行相同的操作,但是我不想使用opencv和其他库手动配置每台计算机。
在Visual Studio 2013中运行项目后,有什么方法可以链接exe文件中的所有内容,以便我可以在不依赖于libaries和opencv路径的情况下运行exe?
已编辑
我使用opencv安装程序opencv2.4.7.exe
在当前的VS2013项目中,我将项目和opencv安装程序配置为此链接http://www.anlak.com/using-opencv-2-4-x-with-visual-studio-2010-tutorial/
问题:我是否可以使用C:\ opencv \ build \ x64 \ vc11 \ staticlib文件夹中的库来自opencv安装程序,而无需从源opencv创建自己的库?
问题:如果我需要从opencv源生成新的库(http://docs.opencv.org/doc/tutorials/introduction/windows_install/windows_install.html)或在opencv安装程序的静态文件夹中使用lib,如果我想将其全部包含到exe文件中,我是否需要创建新项目并重新配置?
谢谢你。
首先,您需要重建openCV以生成静态库,而不是动态链接的库。这样,您的应用程序使用的所有代码都将被丢到一个exe文件中(这可能会更大)。您可以将此exe文件移动到其他计算机,并且只要它们的体系结构至少与您的计算机兼容,它们就可以在其他计算机上运行。因此,如果您在x86 Perconal计算机(32位)上构建它,则它基本上应该可以在任何其他个人计算机上运行。如果在x64计算机(AMD 64位)上构建它,则它将仅在其他x64计算机上运行。至少在两个系统都使用相同的syscall API(Windows NT,POSIX ...)的情况下,这是正确的。
对于openCV,您可以通过将BUILD_SHARED_LIBS构建标志设置为false来做到这一点(请参阅OpenCV作为静态库(cmake选项),从此处摘录以下行):
cmake -DBUILD_SHARED_LIBS = OFF ..
完成此操作后,您将看到openCV文件夹看起来与现在的文件夹非常相似,不同之处在于,在“ lib”文件夹中现在将使用.lib文件而不是.dll文件(至少如果您是在Windows上工作,由于您使用的是Visual Studio,因此我假定您可以这样做。
下一步是转到项目设置,并将链接器设置为与静态库而不是动态库链接。如果您使用openCV的本地方法进行链接,则可以转到项目设置->链接器->输入->其他依赖项。在那里,您可以将所有openCV库的扩展名从.dll更改为.lib。
现在,您应该能够重建您的应用程序,并且生成的exe文件应该其中包含所有依赖库。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句