首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将opencv和其他dll文件链接到visual studio 2013的输出exe

如何将opencv和其他dll文件链接到visual studio 2013的输出exe
EN

Stack Overflow用户
提问于 2014-02-13 13:04:04
回答 1查看 5.9K关注 0票数 3

我是新的视觉工作室,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文件中,我需要创建新的项目并重新配置吗?

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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文件中应该包含所有依赖库。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21755064

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档