链接的头文件(贴了部分)

  •  /usr/include/libusb-1.0/libusb.h \/usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h /usr/include/stdint.h \/usr/include/x86_64-linux-gnu/bits/wchar.h \/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \/usr/include/x86_64-linux-gnu/sys/time.h /usr/include/time.h \/usr/include/x86_64-linux-gnu/bits/time.h \/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \
    
  • 下面的具体的报错
  • /usr/bin/ld: /tmp/ccRBAXf0.o: in function `print_devs':
    main.c:(.text+0x3b): undefined reference to `libusb_get_device_descriptor'
    /usr/bin/ld: main.c:(.text+0x72): undefined reference to `libusb_get_device_address'
    /usr/bin/ld: main.c:(.text+0x81): undefined reference to `libusb_get_bus_number'
    /usr/bin/ld: /tmp/ccRBAXf0.o: in function `main':
    main.c:(.text+0x114): undefined reference to `libusb_init'
    /usr/bin/ld: main.c:(.text+0x133): undefined reference to `libusb_get_device_list'
    /usr/bin/ld: main.c:(.text+0x161): undefined reference to `libusb_free_device_list'
    /usr/bin/ld: main.c:(.text+0x16b): undefined reference to `libusb_exit'
    collect2: error: ld returned 1 exit status
    
  • 解决办法
  • 先确定是否安装libusb
    1.安装命令: Ubuntu 测试 其他linux应该是一样的sudo apt-get install libusb-1.0-0-dev
    sudo apt-get install libusb-dev
  • 然后用 gcc编译器编译你的代码 在后面加上 -lusb或者-lusb-1.0 应该就可以了libusb库 1.23 之前
    例1.gcc -o main main.c -lusb
    libusb库 1.23 之后
    例2.gcc -o main main.c -lusb-1.0
  • 自己找了好久 也是自己疏忽 其实已经找到了答案 没有去验证 浪费了 好长时间 立贴避免别人踩坑
  • 有个解释 贴一下
  • 通常,当系统上的libusb.so链接
    (例如/usr/lib/x86_64-linux-gnu/libusb.so)指向某些不包含必需符号的libusb较旧版本时,
    就会发生这种情况。 libusb-0.1.so.4。
    您可以使用readlink <link-path>命令检查链接指向的位置。
    在这种情况下,可能需要调整源以查找特定版本
  • 原文网址 点击访问

ubuntu 安装libusb 编译自己写的程序 发现很多undefined(排除包含头文件的问题)相关推荐

  1. GN_2_使用GN编译自己写的程序

    GN_1_在Ubuntu22.04安装GN 中已经介绍过GN的安装.下面我们使用GN来编译自己写的helloworld程序. 复制例子simple_build中的 .gn和build到你自己新建的目录 ...

  2. Linux下没有包含头文件(不知是哪个)导致编译无法通过的解决心得

    最近写程序的时候编译出错了,提示信息为:invalid use of undefined type 'fb_var_screeninfo'.显示根据英文知道是没有定义 'fb_var_screenin ...

  3. 头文件里面声明的函数,到底加extern好还是不加extern呢?加不加都一样,默认是EXTERN。有时候没包含头文件编译也能找到函数,不报错只警告

    头文件里面声明的函数,到底加extern好还是不加extern呢? C/C++>C语言 收藏回复 [问题点数:20分] 0深水蓝0 等级 结帖率 79.49% 想征求一下大家的意见. 一些希望对 ...

  4. 【C语言】大程序(.c和.h)头文件和源文件

    参考中国大学MOOC 浙江大学翁恺C语言程序设计在线课程 定义 :产生代码 声明 :不产生代码 函数原型 变量声明 结构声明 宏声明 枚举声明 类型声明 #include <stdio.h> ...

  5. ubuntu安装vasp_vasp编译简略指南(自用)

    编译vasp整体思路: 1.提供环境 2.编译 第一步一般就是下载Intel的 Parallel Studio XE, 但现在的最新网站好像更新了,所以找不到这个了,已经变成了oneapi的集成包了 ...

  6. linux redis客户端怎么使用,linux 下安装redis并用QT写客户端程序进行连接

    1.安装redis.使用如下命令: wget http://dowload.redis.io/redis-stable.tar.gz tar xzf redis-stable.tar.gz cd re ...

  7. MFC程序需要的函数库及头文件--《深入浅出MFC》

    Windows程序调用的函数可分为2部分:C Runtimes + Windows API. C Runtimes: LIBC.LIB -- C Runtime函数库的静态链接版本 MSVSRT.LI ...

  8. c语言 如何让程序等待一定的时间 sleep 头文件 delay,如何让C语言sleep()函数等待时间小于1秒?...

    sleep()函数大概只能精确到50ms左右,你用sleep(10)是肯定不行的,如果你要精确的定时的话可以使用QueryPerformanceFrequency()函数,用法为: LARGE_INT ...

  9. UBUNTU环境下编译的openwrt

    UBUNTU环境下编译的openwrt 请执行这个命令以安装编译依赖包:sudo apt-get update 然后再输这个: sudo apt-get install gcc g++ binutil ...

最新文章

  1. 复旦大学把衣服变成了显示器,能聊天能导航,水洗弯折都不怕 | Nature
  2. 网站推广浅析库克八亿年终奖的背后苹果公司如何展开企业的营销推广
  3. 攻防世界-crypto-OldDriver(RSA低加密指数广播攻击) 方法总结
  4. spring autoproxy by annotation
  5. 【大会】嵌入式玩直播,IoT做前处理
  6. leetcode1491. 工资平均值 这也叫题?也太简单了吧
  7. C#委托实现C++ Dll中的回调函数
  8. scala 高级类型
  9. oracle 10个表循环10次,oracle10g for 循环 嵌套
  10. INSERT INTO SELECT 语句
  11. EndnoteX7/8/9参考文献不按顺序出现
  12. 简单的Dos攻击-死亡之Ping
  13. 正弦波、方波、三角波的产生和两两之间相互转换
  14. python数据可视化毕业设计题目_python:数据可视化
  15. 今天收到一封非常牛B的离职信
  16. 潘金莲——中国女性解放思想的先驱《其实我的心没走》
  17. MLY翻译 -- 4.Scale drivers machine learning progress
  18. uniapp APP端运行报错 cid unmatched at view.umd.min.js:1
  19. 仿阿里云后台管理界面模板html源码——后台
  20. div水平垂直居中问题以及解决方法的兼容性

热门文章

  1. 【Android QR Code】开源项目:ZXing(一)导入项目
  2. Spring 学习笔记(二)Spring AOP
  3. 2017-06-18 前端日报
  4. 每天坚持不懈的写软文,得到的几点心得感悟
  5. HDU2106 decimal system
  6. xp文件夹怎么设置密码?压缩文件及Office文件加密方法
  7. c#操作Xml(八)
  8. oracle中使用sys_connect_by_path进行表中行值连接
  9. 三国志、英雄无敌玩腻了?没关系,我教你开发个战旗游戏玩玩
  10. Java循环添加文件_java – 使用jGit循环提交文件