【发布时间】:2014-12-23 18:29:28
【问题描述】:
我正在尝试使用依赖于 OpenCV 的 Visual Studio 12 社区构建一个 DLL。
我想将 OpenCV 包含为 .lib 文件,因此我不必单独分发它,但我需要将我的文件构建为 DLL。
但我无法将 Visual Studio 配置为将 lib 导入 DLL。如果在
我的项目 -> 属性 -> 配置属性 -> 常规 -> 配置类型,
我选择“静态库(.lib)”并在:
我的项目 -> 属性 -> 配置属性 -> VC++ 目录 -> 库目录,
我选择 OpenCV .lib 文件的路径,并在
我的项目 -> 属性 -> 配置属性 -> 链接器 -> 添加依赖项
我添加了对每个 .lib 的引用,它可以工作。
但如果我将配置类型更改为“动态库 (.dll)”,Visual Studio 会告诉我:
opencv_highgui2410d.lib(window.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MTd_StaticDebug' doesn't match value 'MDd_DynamicDebug' in VectorsImport.obj
看来我只能用 .lib 文件制作 .lib 文件。但这似乎不太可能。我已经查过了,但我只找到了有关如何制作 .lib 文件或 .dll 文件或其他文件的指南。这一定很简单,但我无法弄清楚。我习惯了 Linux,其中 .o 可以很容易地包含在 .so 中。这让我很困惑。
【问题讨论】:
-
从错误来看,opencv.lib是动态链接的,应该使用动态链接。
标签: c++ visual-studio-2012 static-linking dynamic-linking