OpenCV 2.3.1 cxcore210.lib 和 cv210.lib 继承值
Posted
技术标签:
【中文标题】OpenCV 2.3.1 cxcore210.lib 和 cv210.lib 继承值【英文标题】:OpenCV 2.3.1 cxcore210.lib and cv210.lib inherited values 【发布时间】:2012-04-24 10:40:24 【问题描述】:我现在正在使用 OpenCV 2.3.1 和 MS Visual Studio 2010 工作一段时间,并将其安装在多台 PC 上。过去,我也在我的一台 PC 上安装了 openCV 2.1.0。我的问题是,在我安装了 openCV 2.1.0 的 PC 上,cxcore210.lib 和 cv210.lib 在链接器 >> 输入 >> 附加依赖项中列为继承值
问题是,当我尝试在这台 PC 上使用 OpenCV 2.3.1 构建程序时(我已经正确设置了所有链接器和东西,并且在我的“干净”PC 上它工作正常)它一直要求这 2库文件。当然,我可以再次安装 OpenCV 2.1.0 并链接到这些文件,但这并不是我真正想要的,因为我正在使用 OpenCV 2.3.1
我尝试重新安装我的 Visual Studio,但这也不能解决问题。 OpenCV 2.1.0 也被卸载,路径设置也被删除。有谁知道为什么它一直在寻找 cxcore210.lib 和 cv210.lib 作为继承值,我该如何摆脱它们?
【问题讨论】:
【参考方案1】:那是因为您的项目仍然认为您使用的是 OpenCV 2.1。您需要转到Linker > Input > Additional Dependencies
下的项目设置,并将cxcore210.lib cv210.lib
替换为各自的v2.3.1 对应项,即:
opencv_core231.lib opencv_highgui231.lib
您可能需要添加其他库,例如 opencv_imgproc231.lib
abd 可能还有其他库,具体取决于您的程序在 OpenCV 中使用的内容。这些版本之间发生了很多变化。
此外,如果您将 OpenCV 2.3.1 安装在与用于 v2.1 的目录不同的目录中,您将不得不在项目设置中调整一些其他内容:
标头路径:C/C++ > General > Additional Include Directories
可能还有图书馆的路径:Linker > General > Additional Library Directories
This tutorial 逐步展示了如何配置这些以及更多内容。
【讨论】:
我完全理解您的解决方案,并且知道如何正确设置所有内容(为此苦苦挣扎,但 Bytefish 帮助我解决了这个问题)。问题是我根本无法删除 cxcore210.lib 和 cv210.lib。当我转到 Linker > Input > Additional Dependencies 时,这两个库在灰色框中列为继承值。我无法从那里删除它们 我明白了。我不知道为什么会这样,它不应该,所以我猜你将不得不从头开始重新创建项目。创建一个新的 VS 项目并开始添加文件,最后调整项目设置。我不知道其他方法。 似乎也没有帮助。我什至重新安装了 Visual Studio(并因此重新创建了项目)但是即使在使用新创建的项目进行新安装后,这两个 lib 文件仍然列为继承。我真的不想做一个完整的系统恢复来解决这个问题:p 您的意思是,如果您创建一个新的 hello world 项目,这些库将在项目设置中进行硬编码??? 是的 :p 它们被列为继承值,位于 kernel32.lib、user32.lib 和更多这些文件之间。我创建的每个新项目这 2 个 lib 文件在某种程度上都是从某个地方继承而来的。【参考方案2】:嗯,现在似乎可以工作,我想我设法找到了一些解决方法。我去了链接器>输入>附加依赖项并取消选中“从父级或项目默认值继承”框。两个 lib 文件都保留为继承值,但至少我可以正确构建和运行项目,而不会出现错误告诉我指向 cxcore210.lib cv210.lib
【讨论】:
以上是关于OpenCV 2.3.1 cxcore210.lib 和 cv210.lib 继承值的主要内容,如果未能解决你的问题,请参考以下文章
opencv:如何在 Visual Studio 2005 中设置项目依赖项?