如何在OpenCV C ++中使用* .lib文件而不是* .dll

时间:2014-08-12 15:15:23

标签: c++ opencv dll

我是使用OpenCV C ++的新手。是否有可能配置我的VS 2013以将我的项目配置为仅使用*.lib而不是*.dll?我不想将任何*.dll文件添加到我的最终可执行文件中。我听说*.lib文件在编译时只是插入(抱歉这个词)到这个可执行文件而不是周围的许多*.dll文件。

我正在关注此manual,特别是在一些 INSTALL 项目的结尾。我从本手册中做了每一步,但是......它不起作用。 (我可以编译测试项目 - here),但它总是说“我找不到*.dll文件和程序无法运行。”

谢谢。

3 个答案:

答案 0 :(得分:4)

您可以尝试静态链接。但是它使得编译的可执行文件更大,并且需要更长的时间将所有部分组装成一个单独的可执行文件。

可以通过设置use shared library(即dll)标志来实现。 cmake -DBUILD_SHARED_LIBS = OFF

答案 1 :(得分:0)

据我所知,没有办法避免使用* .dll文件。另外我猜你正试图从VS2013 GUI运行你的项目。问题是,如果没有单独的配置,可执行文件会在其位置预期所有* .dll文件。

VS在/project/debug/.exe中找到项目的 .exe文件(或发布取决于设置)。

" INSTALL"但是,项目通常会创建一个单独的文件夹,您的项目正在安装"。

因此,您要么将* .dll文件复制到项目的构建文件夹中,要么构建" INSTALL"每次项目并从特定的"安装"开始* .exe。文件夹中。

答案 2 :(得分:0)

我认为你可以设置[Build] - > [BUILD_SHARED_LIBS] - >值未选中