【发布时间】:2014-03-06 19:46:16
【问题描述】:
出于学习目的,我想创建一个静态库,即 opencv 中使用的 lib 文件的“包”,然后将其链接到我的应用程序“opencvuser”。这样做,我得到了大量的错误。 (LNK2005 和 LNK2019)
我的设置:
项目:静态库
- 我创建了一个没有预编译头文件的静态库应用程序。
- 在图书管理员下,我已将 D:\OpenCV248\build\x64\vc10\staticlib 作为 附加库 目录。我已将所有可用的 .lib 文件指定为 additional 依赖关系。 (opencv_core248d.lib, opencv_imgproc248d.lib, opencv_highgui248d.lib, ...)Source
项目:opencvuser
- 我已将 C:\OpenCV240\build\include 添加为附加包含目录
- 然后我在“Properties -> References”下列出了“staticLib”
我的期望:现在我应该获得相同的功能,因为我将添加 opencv lib 文件而不是我构建的 staticLib.lib 我的期望是否正确?
到目前为止我检查过的内容:
- 所有项目都是 x64
- Runtime-Library 在两个项目中都设置为“多线程调试”
有人知道静态库上的 Runtime-Library 设置是否设置为“多线程调试”吗?
【问题讨论】:
-
请先试试这个。 stackoverflow.com/questions/7583172/… 为了能够为静态库编译 OpenCV,需要在 CMake 中配置该选项,然后才能为您生成 Microsoft Visual Studio 解决方案文件。如果您已经生成了这些解决方案文件,将它们更改为静态构建会很麻烦。
-
我不太明白,我已经在使用 OPENCV 的静态预构建库将其嵌入到我的自定义静态库中。或者你的意思是不同的?谢谢你的评论
-
据我了解,您首先尝试编译包含所有 OpenCV lib 文件的 staticLib,尝试仅获取一个静态库。然后您尝试引用该文件并使用 OpenCV 函数。我说的对吗?
-
没错,没错。
标签: c++ visual-studio-2010 opencv