libusb + libuvc 环境搭建

简介: libusb + libuvc 环境搭建

1.什么是libuvc ?


libuvc 是一个基于 host 端的跨平台的 uvc 开源库,小巧简洁。目前支持


  • h264/mjpeg/yuv


  • 完整的 uvc 协议支持(控制/流)


  • 扩展单元协议自定义。


libuvc 是一个基于libusb 之上的协议,对于想学uvc的朋友,可以快速入手其源码。

本文对其源码,不做过多分析,只对其环境构建做详细介绍。


2.安装准备


  • cmake


  • git


  • gcc


  • pkg-config


  • libusb


  • libuvc


默认cmake/git/gcc/pkg-config 已安装,本文只对libusb 和libuvc 进行介绍。


3.安装 libusb


libusb 可以通过命令行安装,本文将从源码编译安装,方便大家后续在编的平台交叉编译。


3.1下载


git clone https://github.com/libusb/libusb.git


3.2 编译


  1. 安装第三方库


sudo apt-get install autoconf libtool 
libudev-dev


  1. 执行自动配置脚本,执行完成后会生成configure, INSTALL


./autogen.sh


  1. 配置configure(工具链, 安装路径,编译选项等) 见 INSTALL


PWD=`pwd`
rm -r $PWD/out
mkdir $PWD/out
PREFIX_DIR=$PWD/out
# 这里只配置了 安装路径
./configure --prefix=$PREFIX_DIR
# 编译及安装
make && make install


3 .编译成功如下:


image.png


4. libuvc


4.1 下载源码


git clone https://github.com/libuvc/libuvc.git


4.2 编译


  1. 打开README。可以看到安装编译目录


image.png


  1. 指定第三方库路径


1.1 libusb


# 设置环境变量,并将libusb-1.0.pc 复制到改路径下
export PKG_CONFIG_PATH=/home/wxyang/work/github/usb/3rd/pkgconfig
# 查找库(测试)
pkg-config --libs libusb-1.0
# 查找头文件(测试)
pkg-config --cflags libusb-1.0


1.2 opencv 由于opecv 依赖的三方库太多,故不从源码介绍安装,直接通过apt-get 安装


sudo apt-get install libopencv-dev python-opencv
# 测试
pkg-config --cflags opencv


image.png


1.3 libjpeg


可选,如果要支持mjpeg 编码需要安装,也可通过ffmpeg解码


  1. 编译安装


#!/bin/bash
PWD=`pwd`
rm $PWD/build
mkdir $PWD/build
mkdir $PWD/out
BUILD_DIR=$PWD/build
PREFIX_DIR=$PWD/out
cd BUILD_DIR
# 指定安装路径
cmake -DCMAKE_INSTALL_PREFIX=$PREFIX_DIR -DBUILD_TEST=ON -DBUILD_EXAMPLE=ON ..
# 这里只配置了 安装路径
make && make install
~


image.png


5. 测试


  1. 修改 makefile


image.png


  1. 将编好的libuvc库 放到指定的位置并设置好环境变量 PKG_CONFIG_PATH


  • 3rd/pkgconfig 下放编译好的.pc 便于pkg-config 能找到


  • libuvc.pc 里面指定了真正的库文件目录


  • testuvc 里面是测试simple ,直接从libuvc里面拷贝一个例子


  • 注意使用pkg-congfig 默认是动态链接,如果想要镜头链接,将指定库文件里面的动态库全部删掉,就会自动静态链接。


image.png


6. 总结


本文记录一下在构建libuvc 的时候,所遇到的一些坑.整个过程下来,如果一个人折腾还是挺花时间。同时回顾一下第三库的构建过程,方便读者快速在其他平台编译。

相关文章
|
5月前
|
Ubuntu Linux Python
Linux(15)Ubuntu安装ninja构建工具
Linux(15)Ubuntu安装ninja构建工具
741 0
|
5月前
|
Ubuntu Linux 开发工具
Linux下的IMX6ULL——环境搭建与软件安装(一)
Linux下的IMX6ULL——环境搭建与软件安装(一)
154 0
Linux下的IMX6ULL——环境搭建与软件安装(一)
|
Ubuntu Linux API
libusb简介及在Linux中安装libusb
最近做了关于在X86环境下通过FT232H芯片实现的USB转SPI的相关驱动,接触到了libusb。libusb是一个开源的用C实现的,应用程序与用户的USB设备进行通信的库。它是可移植的,对外使用统一的API,支持Windows、macOS、Linux、Android。它是用户模式(user-mode),应用程序与USB设备通信不需要高权限,但是在Android下好像有些接口需要root权限才能调用成功。它支持所有版本的USB协议。它的License是LGPL,源码地址在https://github.com/libusb/libusb,最新发布版本为1.0.23。
libusb简介及在Linux中安装libusb
|
5月前
|
人工智能 Ubuntu Shell
【Ubuntu工具】安装教程:Ubuntu系统上源码编译安装QT5.15.13(有坑)
【Ubuntu工具】安装教程:Ubuntu系统上源码编译安装QT5.15.13(有坑)
421 0
|
10月前
forge环境搭建
forge环境搭建
62 0
|
JavaScript Linux Shell
nodejs安装和环境配置-Linux(2024)
nodejs安装和环境配置-Linux
180 0
nodejs安装和环境配置-Linux(2024)
|
JavaScript Linux Shell
nodejs安装和环境配置-Linux
nodejs安装和环境配置-Linux
|
Unix Linux API
开源库介绍:libusb 及其使用
开源库介绍:libusb 及其使用
3761 0
开源库介绍:libusb 及其使用
|
Ubuntu NoSQL Linux
linux0.11+Bochs环境搭建和使用
linux0.11+Bochs环境搭建和使用
|
JavaScript iOS开发 MacOS
怎样从`MacOSX` 上完全卸载`Nodejs` ?
MacOS , Nodejs, Homebrew, nvm
2626 0
下一篇
无影云桌面