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 的时候,所遇到的一些坑.整个过程下来,如果一个人折腾还是挺花时间。同时回顾一下第三库的构建过程,方便读者快速在其他平台编译。

相关文章
|
7月前
|
Linux 编译器 Android开发
linux交叉编译nss3,nspr库精讲
linux交叉编译nss3,nspr库精讲
300 1
|
7月前
|
Linux C语言
linux yum安装ffmpeg 图文详解
linux yum安装ffmpeg 图文详解
641 0
|
7月前
|
Ubuntu Linux 开发工具
Linux下的IMX6ULL——环境搭建与软件安装(一)
Linux下的IMX6ULL——环境搭建与软件安装(一)
216 0
Linux下的IMX6ULL——环境搭建与软件安装(一)
|
4月前
|
开发工具 git 计算机视觉
在Ubuntu16.04上配置CLion的OpenCV4.3.0开发环境
在Ubuntu16.04上配置CLion的OpenCV4.3.0开发环境
39 0
|
7月前
|
人工智能 Ubuntu Shell
【Ubuntu工具】安装教程:Ubuntu系统上源码编译安装QT5.15.13(有坑)
【Ubuntu工具】安装教程:Ubuntu系统上源码编译安装QT5.15.13(有坑)
637 0
|
7月前
|
Linux 编译器 网络安全
linux 交叉编译libcurl库
linux 交叉编译libcurl库
315 1
|
7月前
|
Linux C++
手把手教你ubuntu18.04安装netmap
手把手教你ubuntu18.04安装netmap
147 1
|
Ubuntu Java 编译器
iMX6 yocto平台QT交叉编译环境搭建
iMX6 yocto平台QT交叉编译环境搭建
273 0
iMX6 yocto平台QT交叉编译环境搭建
|
Unix Linux API
开源库介绍:libusb 及其使用
开源库介绍:libusb 及其使用
4229 0
开源库介绍:libusb 及其使用
|
Ubuntu NoSQL Linux
linux0.11+Bochs环境搭建和使用
linux0.11+Bochs环境搭建和使用