qt如何在windows上打开usb摄像头?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了qt如何在windows上打开usb摄像头?相关的知识,希望对你有一定的参考价值。

如题,本人有个在linux上运行的qt程序,里面要打开摄像头设备,使用
fd = open(dev_name.toStdString().c_str(), O_RDWR, 0);即可。现想把该程序放到windows上,有两个问题:
windows上的设备应该也类似于文件吧, linux文件有统一路径/dev/.., 那么windows上是否也有这样的路径呢? 摄像头设备的具体路径是什么?
2. 打开该设备后,linux上使用的v4l编程在windows上应该不能使用了,该怎么改?
希望高手指导下!多谢

参考技术A 将摄像头快捷方式放到“系统盘(C盘):\Users\用户名\AppData\Roaming\Microsoft
\Windows\Network Shortcuts目录下就会显示出来

Qt Creator 链接器错误:LNK1104:无法打开 fil 'usb-1.0.lib' - Windows

【中文标题】Qt Creator 链接器错误:LNK1104:无法打开 fil \'usb-1.0.lib\' - Windows【英文标题】:Qt Creator linker error: LNK1104: cannot open fil 'usb-1.0.lib' - WindowsQt Creator 链接器错误:LNK1104:无法打开 fil 'usb-1.0.lib' - Windows 【发布时间】:2019-02-08 11:28:28 【问题描述】:

我正在尝试在 Windows 上的 QtCreator 上构建一个 Qt 项目(已经在 Ubuntu 上运行)。我想在调试模式下构建它,然后在发布模式下构建它,因为我希望将我的应用程序部署到 Windows。

第一次编译项目时,出现以下错误C1083: Cannot open include file 'libusb.h' no such file or directory。我通过将 libusb.h 文件从 E:\Qt\5.11.2\Src\qtwebengine\src\3rdparty\chromium\third_party\libusb\src\libusb 复制到我的编译器文件夹中解决了这个错误:E:\Qt\5.11.2\msvc2017_64\include

再次清理和编译项目后,我遇到了另一个错误,我找不到解决方案,即使我用谷歌搜索并尝试更改我的 .pro 文件的LIB += -lusb-1.0 行。这是错误:LNK1104: cannot open fileusb-1.0.lib`

这是我的项目文件:

QT += quick core
CONFIG += c++11
DEFINES += QT_DEPRECATED_WARNINGS
SOURCES += \
    main.cpp \
    readthread.cpp \
    passerelle.cpp

RESOURCES += qml.qrc
QML_IMPORT_PATH =
QML_DESIGNER_IMPORT_PATH =
qnx: target.path = /tmp/$$TARGET/bin
else: unix:!android: target.path = /opt/$$TARGET/bin
!isEmpty(target.path): INSTALLS += target

HEADER += \
    readthread.h \
    passerelle.h

LIBS += -lusb-1.0

我在 readthread.h 文件中调用#include <libusb.h>

您是否知道如何解决这个问题,为什么编译器会寻找usb-1.0.lib 而不是libusb-1.0.lib

我已经尝试从下载的Latest Windows Binary downloads 文件夹 (libusb-1.0.22\MS64\dll\libusb-1.0.lib) 复制 libusb-1.0.lib 文件,但它没有改变任何东西...

【问题讨论】:

只需使用LIBS += libusb-1.0.lib 我还是有同样的错误:/ 你有一个错误说无法打开usb-1.0.lib?您是否尝试过完整路径? 是的,我有完全相同的错误:LNK1104: cannot open file libusb-1.0.lib. By full path, you mean, write LIBS += E:\Qt\5.11.2\msvc2017_64\lib\libusb-1.0.lib` ? 嗯,好的,那我去看看 CMake,看看它是否能解决我的问题。一旦我用 CMake 尝试了一些东西,我就会回来:)。但我仍然不太明白为什么它在带有 QMake 的 Linux 上运行得非常好,但在 Windows 上却不行 【参考方案1】:

答案出现在上面的cmets中,不过这里我再写一遍: 我通过使用完整路径解决了它:LIBS+= E:\Qt\5.11.2\msvc2017_64\lib\libusb-1.0.lib。修改完成后,清理,运行 qmake 并构建项目。

【讨论】:

以上是关于qt如何在windows上打开usb摄像头?的主要内容,如果未能解决你的问题,请参考以下文章

怎么打开WIN7USB摄像头

Qt Creator 链接器错误:LNK1104:无法打开 fil 'usb-1.0.lib' - Windows

如何将usb摄像头连接到虚拟机vmware ubuntu系统上?

如何在 Qt 中获取 Linux 上 USB 驱动器的路径?

usb2.0camera双击后显示属性

imShow 上的 OpenCV 崩溃仅适用于 USB 网络摄像头