ubuntu 安装libusb 编译自己写的程序 发现很多undefined(排除包含头文件的问题)
生活随笔
收集整理的這篇文章主要介紹了
ubuntu 安装libusb 编译自己写的程序 发现很多undefined(排除包含头文件的问题)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
鏈接的頭文件(貼了部分)
- /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(排除包含头文件的问题)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MakeFile中文手册(免费下载)-徐
- 下一篇: ubuntu18.04安装pycharm