IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> 使用GitHub中的node-usb库创建动态/静态库的具体方法 -> 正文阅读

[开发工具]使用GitHub中的node-usb库创建动态/静态库的具体方法


前言

这是我第一次在CSDN发文,记录一下让我哭笑不得的经历,以及提醒往后遇到这些问题并且摸不着头脑的大家。本文重点是在linux环境中下载编译node-usb资源为动态/静态库,以便于在其他场景应用usb功能。


以下是本篇文章正文内容,下面案例可供参考

一、工具准备

作为一个合格的嵌入式工程师,基本都具备自己的一套开发工具,以下推荐一下我个人使用的VMware workstation15.5pro 和 bearpi提供的Ubuntu18.4系统(进行harmony OS开发时获得的系统,直接打开虚拟机即可,极易安装!!)

VMware及密钥:https://pan.baidu.com/s/1Te78wYHTAUTSp4TNABU4gQ
提取码 ghd1

Ubuntu18.4系统镜像:https://pan.baidu.com/s/1gWXvR21tf5ZJP4_RCbxlwQ
提取码 ghd1

下载node.js :JavaScript运行环境 (上述系统镜像已经配置好)
npm(Node Package Manager):代码仓下载工具,避免去Github下载(已搭载)

二、使用步骤

*建议先翻译浏览GitHub官网:https://github.com/node-usb/node-usb 对于node-usb的介绍,其中有对安装、接口使用等的说明,以下为实践总结:

1.检查环境

1、检查工具有无:
这些工具在上述ubuntu镜像中都准备好了,如果自己的系统有缺失自备即可。

node -v  //查看node.js版本 确保Node.js >= v10.16.0, which includes .npm
npm -v  //查看npm版本 npm为js套件下载更新工具
gcc -v  //查看编译器版本

2、下载node-usb代码资源:

sudo -i          //root 权限,很多npm下载没有权限会报err
mkdir /home/ghd  //创建自己的项目文件夹
cd /home/ghd     //以后都是在自己的文件夹下操作
npm install usb  //下载node-usb

切忌在Github官网Code方式下载node-usb资料包,内含libusb链接文件夹,下载得到的libusb文件夹为空,需要使用npm工具联网下载(windows环境也是)该方式得到后再转移至使用环境。也即有些CSDN的node-usb资源是无效的!大坑!因为没有libusb会各种缺少文件 !!

在这里插入图片描述

3、下载结果如下:

在这里插入图片描述
node-module下生成node-addon-api(node.js的接口库)
node-gyp-build(gyp编译工具)、@types、usb(usblib库文件)

2.降低python版本(3.8->2.7)

采用update-alternatives 切换python版本
详情查看: https://blog.csdn.net/jc15988821760/article/details/95166733

update-alternatives --display python
update-alternatives: 错误: 无 python 的候选项

sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 2   //添加Python2可选项,优先级为2
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 1   //添加Python3可选项,优先级为1

sudo update-alternatives --config python  //选择自己需要的python版本 1 or 2

三、使用node-usb资源编译为动态/静态库

1.使用libusb.gypi编译静态库(.a)

1、编译libusb.gypi生成Makefile:(默认编译为static_library)

cd usb  //进入文件夹下
nano libusb.gypi  //查看libusb.gypi 该文件类似makefile,控制编译过程
ctrl + x  //.a库无需修改,退出查看
gyp --depth=./ libusb.gypi //gyp编译 前面为命令,后面为编译对象,

在这里插入图片描述
编译结果生成Makefile、libusb.Makefile、libusb.target.mk

2、make编译

make  //在此目录下进行make 命令

生成目标libusb.a库在 out/Default/obj.target/libusb.a

2.使用libusb.gypi编译动态库(.so)

1、编译libusb.gypi生成Makefile:(修改编译配置为shared_library)

nano libusb.gypi  //查看libusb.gypi内容

修改type为shared_library

  'targets': [
   
      'target_name': 'libusb',   //结果文件名
      'type': 'static_library',  //static--->shared  静态 ->动态

添加-fPIC ,为了在动态库中生成位置无关的代码
详细知识可以到这里 https://blog.csdn.net/derkampf/article/details/69660050

      ],
      'cflags': [
        '-w',
        '-fPIC',
      ],
ctrl + o  // 保存
ctrl + x  //退出

2、make编译

make  //在此目录下进行make 命令

生成目标libusb.so库在 /home/ghd/node_modules/usb/out/Default/obj.target下
在这里插入图片描述

最后直接附上我编译获得的libusb.so 和 libusb.a。
https://pan.baidu.com/s/1aLUCmE7J91GBHG9ChTztKQ

提取码自己猜!
鱼和渔我都教给大伙儿了!!


# 总结 提示: 几个重点:不能使用GitHub下载的node-usb、降低python版本、生成动态库会遇到.o文件位置的问题 以上就是今天要讲的内容,本文仅仅简单介绍了node-usb的编译使用,具体的细节知识我也没有去了解,工作中基本学会怎么去用就可以去做了,就像本文是给到基本方法和误区提醒,详细资料可以点开链接多了解。
  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-01-01 14:09:16  更:2022-01-01 14:11:13 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 12:57:48-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码