本文介绍了在Mac OS X中链接libusb的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有这个非常简单的代码,我试图编译。我对命令行相当陌生,所以请原谅我。我已经用GCC尝试了很多不同的东西,但我仍然无法编译它。我确实安装了。如何获得这段代码进行编译?



Libusb:

  anything:usb mymac $ brew list libusb 
/usr/local/Cellar/libusb/1.0.9/include/libusb-1.0/libusb.h
/usr/local/Cellar/libusb/1.0 .9 / lib / libusb-1.0.0.dylib
/usr/local/Cellar/libusb/1.0.9/lib/pkgconfig/libusb-1.0.pc
/ usr / local / Cellar / libusb /1.0.9/lib/(2个其他文件)
任何东西:usb mymac $

GCC尝试(全部失败):

  gcc -o xout usbtest.c 
gcc -o xout usbtest.c - lusb-1.0
gcc -L / usr / local / Cellar / libusb / 1.0.9 / lib -o xout usbtest.c -lusb-1.0

所有尝试的错误:

  usbtest.c:3:10:致命错误:找不到'libusb.h'文件
#include< libusb.h>

代码:

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

int main(int argc,const char * argv [])
{
libusb_device ** devs;
libusb_context * context = NULL;

size_t list;
// size_t i;
int ret;

ret = libusb_init(& context);

if(ret {
perror(libusb_init);
exit(1);
}

list = libusb_get_device_list(context,& devs);

printf(有%zd设备找到了\ n,列表);

返回0;


解决方案

查找头文件。这是通过gcc命令行上的 -I 选项进行编译的。



eg

  gcc -I / usr / local / include -o xout usbtest.c 

我认为Homebrew确实提供了从酒窖内部到/ usr / local
的符号链接

I have this very simple piece of code that I'm trying to compile. I'm fairly new to GCC from the command line, so please forgive me. I've tried a quite few different things with GCC, but I'm still unable to get it to compile. I do have libusb installed. How can I get this piece of code to compile?

Libusb:

anything:usb mymac$ brew list libusb
/usr/local/Cellar/libusb/1.0.9/include/libusb-1.0/libusb.h
/usr/local/Cellar/libusb/1.0.9/lib/libusb-1.0.0.dylib
/usr/local/Cellar/libusb/1.0.9/lib/pkgconfig/libusb-1.0.pc
/usr/local/Cellar/libusb/1.0.9/lib/ (2 other files)
anything:usb mymac$

GCC attempts (all failed):

gcc -o xout usbtest.c
gcc -o xout usbtest.c -lusb-1.0
gcc -L/usr/local/Cellar/libusb/1.0.9/lib -o xout usbtest.c -lusb-1.0

Error for all attempts:

usbtest.c:3:10: fatal error: 'libusb.h' file not found
#include <libusb.h>

Code:

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

int main(int argc, const char * argv[])
{
    libusb_device **devs;
    libusb_context *context = NULL;

    size_t list;
    //size_t i;
    int ret;

    ret = libusb_init(&context);

    if(ret < 0)
    {
        perror("libusb_init");
        exit(1);
    }

    list = libusb_get_device_list(context, &devs);

    printf("There are %zd devices found\n", list);

    return 0;
}
解决方案

You are not telling gcc where to look for the header files. This is done by the -I option on the gcc command line for compiling.

e.g.

gcc -I /usr/local/include -o xout usbtest.c

I think Homebrew does provide a symbolic link frominside the Cellar to /usr/local

这篇关于在Mac OS X中链接libusb的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-15 23:49