首页 文章

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

提问于
浏览
2

我是visual studio,opencv的新手 .

我正在使用visual studio 2013,opencv和c来完成我的项目 .

我将opencv和其他库的 (copied path) 配置到我的计算机环境系统中 .

在visual studio中运行项目后,通常会在项目中有一个exe文件 .

I can copy the exe file in the project folder and copy to other place in my computer and it will run normally.

这是因为我的计算机环境系统配置了opencv和其他库 .

我想对其他计算机做同样的事情但我不想用opencv和其他库手动配置每台计算机 .

Are there any ways that I can do to link everythings all in exe file after run the project in visual studio 2013 so that I can run the exe without depend on the path of libaries and opencv?

EDITED

我使用opencv安装程序opencv2.4.7.exe

在当前的VS2013我的项目中,我将我的项目和opencv安装程序配置为此链接http://www.anlak.com/using-opencv-2-4-x-with-visual-studio-2010-tutorial/

question : 我可以使用文件夹C:\ opencv \ build \ x64 \ vc11 \ staticlib来自opencv安装程序吗?不需要从源代码opencv创建我自己的库吗?

question : 如果我需要从opencv源(http://docs.opencv.org/doc/tutorials/introduction/windows_install/windows_install.html)生成新库或在opencv安装程序的静态文件夹中使用lib,如果我想将它全部包含在exe文件中,我是否需要创建新项目并重新配置?

谢谢 .

1 回答

  • 1

    首先,您需要重建openCV以生成静态库而不是动态链接库 . 这样,应用程序使用的所有代码都会在一个单独的exe文件中抛出(这可能会大得多) . 这个exe文件你可以移动到其他计算机,他们仍然可以在那里工作,只要他们的架构至少与你的兼容 . 因此,如果您在x86 perconal计算机(32位)上构建它,它应该基本上可以在任何其他个人计算机上工作 . 如果您在x64计算机(AMD 64位)上构建它,它将只在其他x64计算机上运行 . 假设两个系统使用相同的系统调用API(Windows NT,POSIX ...),至少可以这样 .

    对于openCV,您可以通过将BUILD_SHARED_LIBS构建标志设置为false来执行此操作(请参阅OpenCV as a static library (cmake options),从那里获取以下行):

    cmake -DBUILD_SHARED_LIBS = OFF ..

    完成此操作后,您将看到openCV文件夹看起来与您现在的文件夹非常相似,只是在“lib”文件夹中现在会有.lib文件而不是.dll文件(至少如果你是在Windows上工作,我假设你使用的是Visual Studio) .

    下一步是转到项目设置并将链接器设置为与静态库而不是动态库链接 . 如果您已使用openCV的本地方法进行链接,则可以转到项目设置 - >链接器 - >输入 - >附加依赖项 . 在那里,您将所有openCV库的扩展名从.dll更改为.lib .

    现在您应该能够重建您的应用程序,并且生成的exe文件应该包含所有依赖库 .

相关问题