用Ffmpeg构建和使用OpenCV作为静态库

Building and using OpenCV as a static library with Ffmpeg

本文关键字:静态 Ffmpeg 构建 OpenCV      更新时间:2023-10-16

我正在尝试写一个OpenCV应用程序。我从源代码静态构建OpenCV,因为我不想要dll文件和我的项目编译,只要我不使用cv::VideoCapture,在这种情况下,我得到一个链接错误LNK2019未解析的外部符号。

我认为这是因为cv::VideoCapture使用ffmpeg与视频一起工作,由于它的许可证,不能在我的项目中静态链接。我可以动态链接的ffmpeg,但我有麻烦这样做。在%OpenCV_DIR%bin文件夹中有一个opencv_ffmpeg310_64.dll文件,但我不知道如何动态地将其链接到我的项目。通常我有.lib文件自带的.dll,但我找不到他们在任何地方。

是否可以静态链接OpenCV和动态链接ffmpeg,我该如何去做这件事?

额外的信息:

    Windows 10
  • Visual Studio 2015
  • OpenCV 3.1.0 x64 build

我终于把它修好了。我错误地认为我需要ffmpeg才能让它工作。通过将vfw32.lib添加到Visual Studio中的库依赖项中,我解决了这个问题。