【问题标题】:Failing to link libusb to C project on Mac无法在 Mac 上将 libusb 链接到 C 项目
【发布时间】:2013-07-01 16:34:50
【问题描述】:

我使用 Homebrew 在 Mac OS X 上安装了 libusb,位于

/usr/local/Cellar/libusb

它的如下所示:

.
└── 1.0.9
    ├── AUTHORS
    ├── COPYING
    ├── ChangeLog
    ├── INSTALL_RECEIPT.json
    ├── NEWS
    ├── README
    ├── TODO
    ├── include
    │   └── libusb-1.0
    │       └── libusb.h
    └── lib
        ├── libusb-1.0.0.dylib
        ├── libusb-1.0.a
        ├── libusb-1.0.dylib -> libusb-1.0.0.dylib
        └── pkgconfig
            └── libusb-1.0.pc

我有以下代码:

#include <stdio.h>
#include <stdlib.h>
#include <libusb.h>

int main(void) {
    puts("USB Test v0.0.1");

    //libusb_device **devices;
    libusb_context *ctx = NULL;
    int result;
    result = libusb_init(&ctx);

    if (result < 0) {
        puts("USB initialization error!");
        return EXIT_FAILURE;
    }

    return EXIT_SUCCESS;
}

...但编译会产生以下结果:

22:08:26 **** Incremental Build of configuration debug for project usb_test ****
make all 
Building target: usb_test
Invoking: MacOS X C Linker
gcc -L/usr/local/Cellar/libusb/1.0.9/lib -o "usb_test"  ./src/usb_test.o   -l/usr/local/Cellar/libusb/1.0.9/lib/libusb-1.0.a
ld: library not found for -l/usr/local/Cellar/libusb/1.0.9/lib/libusb-1.0.a
collect2: ld returned 1 exit status
make: *** [usb_test] Error 1

22:08:26 Build Finished (took 68ms)

为什么找不到 libusb 库?

【问题讨论】:

    标签: c eclipse macos eclipse-cdt libusb


    【解决方案1】:

    在某个地方你有一个错误的链接器标志。

     -l/usr/local/Cellar/libusb/1.0.9/lib/libusb-1.0.a
    

    应该是:

     /usr/local/Cellar/libusb/1.0.9/lib/libusb-1.0.a
    

    在这种情况下,您不需要指定链接器搜索路径,因此 不需要-L/usr/local/Cellar/libusb/1.0.9/lib

    如果你不想静态链接到那个libusb-1.0.a,而是链接到.dylib,你需要保留-L/usr/local/Cellar/libusb/1.0.9/lib并替换

     -l/usr/local/Cellar/libusb/1.0.9/lib/libusb-1.0.a
    

     -lusb-1.0
    

    【讨论】:

    • 哇,这是我得到的最快答案!谢谢...当我允许时,我会在 8 分钟内接受。 ;)
    猜你喜欢
    • 2014-01-28
    • 1970-01-01
    • 2013-12-13
    • 1970-01-01
    • 2015-01-26
    • 1970-01-01
    • 1970-01-01
    • 2018-08-19
    • 1970-01-01
    相关资源
    最近更新 更多