使用 GStreamer 在 Windows 上构建 OpenCV 时出现未解决的外部符号错误

问题描述 投票:0回答:1

我正在尝试使用 Visual Studio 22 在 Window 10 Home (x64) 上使用 GStreamer 1.24.2 构建 OpenCV 4.9.0 (https://github.com/opencv/opencv/archive/4.9.0.zip)社区版。为此,我安装了 GStreamer MSVC 64 位、VS 2019、Release CRT 的运行时和development安装程序(均在“完整安装”设置下)。这会导致自动添加以下系统环境变量:

GST_PLUGIN_PATH: C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0
GSTREAMER_1_0_ROOT_MSVC_X86_64: C:\gstreamer\1.0\msvc_x86_64\

我已在系统变量下的路径变量中手动添加了以下内容:

C:\gstreamer\1.0\msvc_x86_64\bin
C:\gstreamer\1.0\msvc_x86_64\lib
C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0

接下来,我启动 CMake 3.29.2 GUI,添加一个指向“C:/gstreamer/1.0/msvc_x86_64”的附加 GSTREAMER_DIR 变量(如果没有这个,当我配置项目时,不会自动选择一些包含路径)并配置、生成和启动我的项目在 VS2022 中,构建模式选择为“release”。

我收到以下链接错误:

enter image description here

enter image description here

任何人都可以帮我完成编译此文件所需的任何其他链接步骤吗?如果我关闭WITH_GSTREAMER,OpenCV 本身似乎编译得很好。

我已经尝试过与 mingw64、msys2-ucrt64、vcpkg 相同的方法,但不幸的是似乎无法使其工作。

谢谢你。

c++ opencv gstreamer unresolved-external
1个回答
0
投票

通过一些查找和查看 GStreamer 的源代码文件,我发现需要将其添加为 C:\gstreamer .0\msvc_x86_64\lib\gstapp-1.0.lib在我的案例中,添加为 opencv_gapi、opencv_test_gapi、opencv_videoio 项目中的附加依赖项。

如果有人正在寻找更详细的说明: 转到模块>opencv_gapi,右键单击并选择“属性”。在“链接器”>“输入”部分中,单击“其他依赖项”字段,单击“编辑”并在其中添加 C:\gstreamer .0\msvc_x86_64\lib\gstapp-1.0.lib。对模块>opencv_videoio 重复相同的操作并测试准确性>opencv_test_gapi。

© www.soinside.com 2019 - 2024. All rights reserved.