如何将opencv和其他dll文件链接到Visual Studio 2013的输出exe

塞沃塔纳

我是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文件中,我是否需要创建新项目并重新配置?

谢谢你。

Bverhagen

首先,您需要重建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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Visual Studio 2013在哪里保存测试dll和其他临时文件?

创建Windows窗体EXE Visual Studio 2013

Visual Studio 2013:将控制台输出重定向到Visual Studio输出窗口

Visual Studio安装程序项目不会覆盖输出的.EXE文件

Visual Studio 2013中cdb.exe位于哪里?

Visual Studio 2013不断崩溃并显示错误denev.exe

VBA:将 Visual Studio 代码链接到 Excel 输入单元格和输出表

Visual Studio 2013和TFS Build 2015:Devenv.exe无法生成MSI文件

无法将matlab.exe进程附加到Visual Studio 2013以调试mex文件吗?

在Visual Studio 2013中发布时如何将dll配置文件复制到bin文件夹中?

如何将 starcounter 与 Visual Studio 2013 集成

如何将具有目录结构的文件导入Visual Studio 2013

异步/等待异常和Visual Studio 2013调试输出行为

Visual Studio 2013将EXEC前缀添加到Makefile输出中

如何防止输出屏幕在Visual Studio 2013 C ++编译器中消失

如何将Visual Studio 2017构建输出记录到文件中?

Visual Studio生成的exe在其他PC上创建dll错误

Visual Studio 2017和丢失的EXE文件

Visual Studio 2013的TypeScript 1.3缺少SDK目录(tsc.exe)

Windows 7 64位Visual Studio 2013上的本机cl.exe

Visual Studio 2013找不到Test Runner的Ms Test.exe,只有VsTest可用

Git与Visual Studio 2013

Visual Studio 2013和libpng

Visual Studio 2013和BitBucket

Visual Studio Express 2013和Visual Studio 2013之间的区别

Visual Studio Express 2013:单元测试中的程序输出(控制台,调试等)

从Visual Studio 2010连接到Visual Studio Online 2013

Visual Studio代码与Visual Studio 2013共存

Visual Studio输出终端