opencv库之间的依赖关系

时间:2014-02-26 17:59:58

标签: c++ opencv

当我们以动态方式或静态方式构建opencv库时,我们将生成几个独立的库。以2.48版本为例,我们将有

opencv_core248 opencv_imgproc248 zlib  IlmImf comctl32  opencv_highgui248 libpng

等等。所以我的问题显然是这些库之间存在一些依赖关系,例如,如果我想在项目中调用opencv_core248opencv_imgproc24库,我就会出现链接错误。然后,如果我添加zlib库,编译错误将被解决。

问题:我想问一个非常笼统的问题:如何知道所有库内部opencv之间的依赖关系?我可以遵循一些文件吗?谢谢。

1 个答案:

答案 0 :(得分:3)

我认为没有一个文档列出了OpenCV库之间的所有依赖关系。

但是我可以建议两种方法来找出这些依赖关系:

  • 使用Dependency Walker,一个允许分析可执行文件和DLL的免费工具。例如,如果您打开opencv_calib3dXXX.DLL(其中XXX代表您的OpenCV版本),您会发现它需要opencv_coreXXX.dllopencv_flannXXX.dllopencv_imgprocXXX.dll和{ {1}}和一些系统DLL。

  • 使用CMake生成的项目结构,这是一个用于跨平台编译的免费工具,用于从源代码中编译OpenCV。例如,如果我为VS2010生成项目结构并打开它,我可以右键单击与opencv_features2dXXX.dll关联的项目并查看项目依赖项。

我提到了我知道并用于Windows的工具,但其他平台也必须存在相同的工具。