问题描述
我有这个非常简单的代码,我试图编译。我对命令行相当陌生,所以请原谅我。我已经用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的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!