为他人编译OpenCV + Gstreamer
Compile OpenCV + Gstreamer for others
我创建了一个使用 OpenCV 和 Gstreamer(接收 udp 流)的项目,如果使用 Visual Studio(运行 按钮)打开,它工作得很好。但是在编译 Release x64 MT 并尝试之后,我不仅需要抛出大量的 GStreamer .dll 文件来打开我的应用程序,而且即使在它成功打开之后,当它打开一个流时,我也会收到警告,因为我的程序是不工作(捕获 return 错误)
[ WARN:0] global F:\Code\opencv_4.5.1\opencv-4.5.1\modules\videoio\src\cap_gstreamer.cpp (734) cv::GStreamerCapture::open OpenCV | GStreamer warning: Error opening bin: no element "udpsrc"
[ WARN:0] global F:\Code\opencv_4.5.1\opencv-4.5.1\modules\videoio\src\cap_gstreamer.cpp (501) cv::GStreamerCapture::isPipelinePlaying OpenCV | GStreamer warning: GStreamer: pipeline have not been created
好像找不到什么东西。我的问题是:
如何编译我的项目以便任何其他 Windows 计算机可以打开它并找到所有需要的文件? (隐藏 .dll 的奖励积分)
谢谢
好的,我发现,出于某种原因,您需要将 .dll 文件从 GStreamer /bin 文件夹移动到您的应用程序主目录,并在之前的文件夹中复制 GStreamer /lib 文件夹
/MyFolder
/my app
/*.dll
/myapp.exe
/lib
*.dll-s 来自“\gstreamer.0\x86_64\bin”
/lib 来自“\gstreamer.0\x86_64”
一大堆文件,它破坏了我的目录组织,但它终于工作了 - 我有人找到了如何fix/improve,请告诉我:wink:
我创建了一个使用 OpenCV 和 Gstreamer(接收 udp 流)的项目,如果使用 Visual Studio(运行 按钮)打开,它工作得很好。但是在编译 Release x64 MT 并尝试之后,我不仅需要抛出大量的 GStreamer .dll 文件来打开我的应用程序,而且即使在它成功打开之后,当它打开一个流时,我也会收到警告,因为我的程序是不工作(捕获 return 错误)
[ WARN:0] global F:\Code\opencv_4.5.1\opencv-4.5.1\modules\videoio\src\cap_gstreamer.cpp (734) cv::GStreamerCapture::open OpenCV | GStreamer warning: Error opening bin: no element "udpsrc"
[ WARN:0] global F:\Code\opencv_4.5.1\opencv-4.5.1\modules\videoio\src\cap_gstreamer.cpp (501) cv::GStreamerCapture::isPipelinePlaying OpenCV | GStreamer warning: GStreamer: pipeline have not been created
好像找不到什么东西。我的问题是:
如何编译我的项目以便任何其他 Windows 计算机可以打开它并找到所有需要的文件? (隐藏 .dll 的奖励积分)
谢谢
好的,我发现,出于某种原因,您需要将 .dll 文件从 GStreamer /bin 文件夹移动到您的应用程序主目录,并在之前的文件夹中复制 GStreamer /lib 文件夹
/MyFolder
/my app
/*.dll
/myapp.exe
/lib
*.dll-s 来自“\gstreamer.0\x86_64\bin” /lib 来自“\gstreamer.0\x86_64”
一大堆文件,它破坏了我的目录组织,但它终于工作了 - 我有人找到了如何fix/improve,请告诉我:wink: