C ld:未找到架构x86_64(libusb)的符号

C ld:未找到架构x86_64(libusb)的符号,c,libusb,C,Libusb,我正试图在Mac上编译以下libusb代码段: #include <stdio.h> #include <stdlib.h> #include <libusb.h> int main(void) { libusb_device **devices; ssize_t device_count = 0; device_count = libusb_get_device_list(NULL, &devices); pri

我正试图在Mac上编译以下libusb代码段:

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

int main(void) {
    libusb_device **devices;
    ssize_t device_count = 0;

    device_count = libusb_get_device_list(NULL, &devices);

    printf("%d devices found\n", (int)device_count);

    return EXIT_SUCCESS;
}
我知道问题在于链接器找不到libusb库,对吗?如何告诉编译器它在EclipseCDT中的位置


正如我们在所有注释中得出的那样,有效的link命令是

gcc -L/usr/local/Cellar/libusb/1.0.9/lib -o "libusb_example" ./src/libusb_example.o -lusb1.0

是的,您需要在link命令中添加-lusb。也可以用a-L开关告诉它在哪里可以找到libusb。我不使用eclipse,所以我无法告诉您如何使用。只是一个注释:您的.c文件名为“libusb”,这有点令人困惑。使用libusb的项目通常不会被称为“libusb”。我同意项目名称,它只是一个示例。当我开始编写实际实现的代码时,它可能会被丢弃。我将研究在Eclipse中添加-L和-lusb,至少我知道命令行gcc调用中缺少了什么。现在获取:ld:library not found for-l/usr/local/cillar/libusb/1.0.9/lib/libusb-1.0.dylibTry gcc-o libusb./src/libusb.o/usr/local/cillar/libusb/1.0.9/libusb/libusb-1.0.dylib如果给gcc lib的路径,则不需要前面的开关。只是.dylib文件的路径。我也有同样的问题,但我使用macports。(7年后)对这个答案稍加修改,使用“-l”也起了作用:
cc-I/opt/local/include-l/opt/local/lib/-lusb-1.0 myprog.c-o myprog
gcc -L/usr/local/Cellar/libusb/1.0.9/lib -o "libusb_example" ./src/libusb_example.o -lusb1.0