Windows下基于MSVC搭建libuvc开发环境

本文转自公众号,欢迎关注
windows下基于msvc搭建libuvc开发环境 (qq.com)
前言libuvc是基于libusb的跨平台uvc库。在mac 和 linux上可以直接构建(使用cmake),也可以移植到windows下。源码https://github.com/libuvc/libuvc
文档https://libuvc.github.io/libuvc/
依赖libuvc依赖libusb和pthread,分别参考
windows下使用pthread-开发环境搭建
windows下基于msvc搭建libusb开发环境
搭建对应的环境。
移植到windows下工程配置基于msvc community 2022。
需要配置好libusb参考开发环境,。
在mac和linux下使用cmake可以方便的构建,参考git的readme即可。在windows下我们可以直接添加源码到vs下进行编译。
下载代码
git clone https://github.com/libuvc/libuvc.git
在自己的工程目录下新建libuvc的文件夹
将源码目录的include和src复制到自己工程的libuvc目录下,添加如下代码到工程中
右键点击工程名->属性
添加包含路径
$(msbuildprojectdirectory)\\src\\libuvc\\include;
代码修改llibuvc\\include\\libuvc下复制一份libuvc_config.h.in改为libuvc_config.h
内容修改如下
#ifndef libuvc_config_h#define libuvc_config_h#define libuvc_version_major 0#define libuvc_version_minor 0#define libuvc_version_patch 6#define libuvc_version_str 0.0.6#define libuvc_version_int \\((0 < < 16) | \\(0 < = (((major) < < 16) | ((minor) < c:\\users\\qinyunti\\onedrive\\wuqi\\usb\\usb_vs\\usb\\src\\libuvc\\include\\libuvc\\libuvc.h(475,19): error c2079: “capture_time_finished”使用未定义的 struct“timespec”
添加#include
l1>c:\\users\\qinyunti\\onedrive\\wuqi\\usb\\usb_vs\\usb\\src\\libuvc\\src\\example.c(3,10): fatal error c1083: 无法打开包括文件: “unistd.h”: no such file or directory
注释掉该头文件l1>c:\\users\\qinyunti\\onedrive\\wuqi\\usb\\usb_vs\\usb\\src\\libuvc\\src\\stream.c(662,38): error c2065: “clock_monotonic”: 未声明的标识符
(void)clock_gettime(clock_monotonic, &strmh->capture_time_finished);
改为
timespec_get(&strmh->capture_time_finished, time_utc);
l1>c:\\users\\qinyunti\\onedrive\\wuqi\\usb\\usb_vs\\usb\\src\\libuvc\\src\\device.c(560,35): error c4996: 'strdup': the posix name for this item is deprecated. instead, use the iso c and c++ conformant name: _strdup. see online help for details.
strdup改为_strdupl1>c:\\users\\qinyunti\\onedrive\\wuqi\\usb\\usb_vs\\usb\\src\\libuvc\\src\\device.c(165): error c4703: 使用了可能未初始化的本地指针变量“test_dev”
uvc_device_t *test_dev;改为uvc_device_t *test_dev = 0;l1>example.obj : error lnk2001: 无法解析的外部符号 sleep
添加#include sleep(10);改为sleep(10000)运行测试先切换驱动
下载打开zadig-2.8.exe
options->list all devices
将pthread.dll复制到exe所在目录
然后运行,可以看到打印的设备信息


应变式传感器的相关特性以及应用概述
比亚迪新能源汽车荣膺第十八届“中国芯”优秀市场表现产品奖
半导体制造之等离子工艺
偏置电流、失调电流与噪声增益对输出直流噪声的影响
打造Smarter Vision开发环境 机器视觉生产力大幅提升
Windows下基于MSVC搭建libuvc开发环境
单片机的寄存器类型及操作教程
基于RASC的keil电子时钟制作(瑞萨RA)(6)----定时器驱动数码管
有了硬件模拟器“加持”以太网SoC测试才能“稳准狠”
预测Apple将在2020年发售iPhone SE2,出货量可达3000万部以上
指纹解锁已无法满足苹果,iPhone8将有新的解锁方式!
AutoBot车载吸尘器体验 到底怎么样
盘点2019物流行业第一季度融资事件
中国新超算天河三号开始研制 将突破关键技术
基于非线性介电光谱(NLDS)的新型诊断方法
肺部专家正在使用3D虚拟现实来微调COVID-19患者的治疗
新AI技术如何破解人类脑部思维?
物联网时代的到来是否会推迟
电源模块出现问题如何解决
小米也疯狂,小米max2突然来袭,直逼老周360N5手机