我是新的视觉工作室,opencv。
我正在使用visual 2013,opencv和c++作为我的项目。
我将(复制路径)、opencv和其他库配置到我的计算机环境系统中。
在visual studio中运行项目后,通常项目中将有一个exe文件。
我可以在项目文件夹中复制exe文件并复制到我的计算机中的其他位置,它将正常运行。
这是因为我的计算机环境系统配置了opencv和其他库。
我想对其他计算机做同样的事情,但是我不想用opencv和其他库手动配置每台计算机。
在visual studio 2013中运行项目后,有什么方法可以将所有事情都链接到exe文件中吗?这样我就可以运行,而不依赖于libaries和opencv?的路径。
编辑的
我使用opencv安装程序opencv2.4.7.exe
在当前的VS2013 my项目中,我将我的项目和opencv安装程序配置为以下链接http://www.anlak.com/using-opencv-2-4-x-with-visual-studio-2010-tutorial/
问题:可以使用文件夹C中的库吗?\ opencv \build\x64\ my 11\staticlib来自opencv安装程序,不需要从源opencv创建自己的库?
问题:如果我需要从opencv源代码(install.html)生成新的库,或者在opencv安装程序的静态文件夹中使用lib,如果我想将其全部包含到exe文件中,我需要创建新的项目并重新配置吗?
谢谢。
发布于 2014-02-13 14:46:30
首先,您需要重新构建openCV来生成静态库,而不是动态链接库。这样,应用程序使用的所有代码都会放在一个exe文件中(这可能要大得多)。这个exe文件,你可以移动到其他计算机,他们仍然应该在那里工作,只要他们有一个架构,至少是兼容你的。因此,如果您在x86 perconal计算机(32位)上构建它,它基本上应该在任何其他个人计算机上工作。如果您在x64计算机(AMD 64位)上构建它,它将只在其他x64计算机上运行。至少,假设两个系统都使用相同的syscall API (Windows,POSIX.),则这是正确的。
对于openCV,您可以通过将BUILD_SHARED_LIBS构建标志设置为false来完成此操作(请参阅OpenCV as a static library (cmake options),下面的一行将从其中删除):
-DBUILD_SHARED_LIBS=OFF ..。
完成此操作后,您将看到openCV文件夹看起来非常类似于您现在的文件夹,除了您的“lib”文件夹中现在将出现.lib文件而不是.dll文件(至少如果您正在使用.dll文件,我假设您使用的是Visual )。
下一步是转到您的项目设置,并将链接器设置为与静态库而不是动态库链接。如果您已经使用openCV的本地方法进行链接,则可以转到项目设置->链接器->输入->附加依赖项。在这里,您将所有openCV库的扩展从.dll更改为.lib。
现在,您应该能够重新构建您的应用程序,生成的exe文件中应该包含所有依赖库。
https://stackoverflow.com/questions/21755064
复制相似问题