OpenCV和Visual Studio 2015:为什么包含静态库不起作用?

时间:2015-12-03 19:47:49

标签: c++ opencv visual-studio-2015 static-libraries .lib

我正在尝试使用OpenCV 3.0.0设置VS2015解决方案,而我正在尝试仅使用静态库。

标题文件:正确包含OpenCV标题文件,我可以在源文件中引用它们而不会出现问题。

库:我使用CMake构建OpenCV(称为“ippicvmt.lib”)时为我创建的静态库文件已正确包含,并且加载没有问题。

在代码中使用OpenCV: 当我尝试在我的解决方案中使用OpenCV类/函数时,在构建类似

时会出现链接器错误
LNK2001:  unresolved external symbol "public: virtual double __thiscall cv::VideoCapture::get(int)const

我可以右键单击并在使用此函数时选择“转到定义”,然后打开videoio.hpp并显示虚拟方法的声明。我看到的链接器错误很可能是由于visual studio无法在我的解决方案中包含的静态库中找到该方法的实际实现。

据我所知,我需要包含的唯一.lib文件是一个静态库文件。这就是我现在所包含的全部内容。

有人知道为什么VS无法在OpenCV静态库中找到此代码的实现吗?

1 个答案:

答案 0 :(得分:0)

我通过在CMake中禁用使用共享库构建的标志来修复我的问题,之后更多.lib文件显示在我的安装中的sharedlib文件夹中。我在项目属性和我的项目构建中添加了我想要用于其他依赖项的每个.lib文件。