我正在尝试编译这段非常简单的代码。我从命令行对GCC相当新,所以请原谅我。我和GCC尝试了很多不同的东西,但我仍然无法编译。我安装了libusb。如何编译这段代码?
的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尝试(全部失败):
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: fatal error: 'libusb.h' file not found
#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 < 0)
{
perror("libusb_init");
exit(1);
}
list = libusb_get_device_list(context, &devs);
printf("There are %zd devices found\n", list);
return 0;
}
答案 0 :(得分:2)
您没有告诉gcc在哪里查找头文件。这是通过gcc命令行上的-I
选项进行编译的。
e.g。
gcc -I /usr/local/include -o xout usbtest.c
我认为Homebrew确实提供了从地窖到/ usr / local的符号链接
答案 1 :(得分:1)
所以我遇到了类似的问题,由于某些原因,gcc在OS X的默认搜索路径中没有包含/ usr / local / lib。快速解决方法是添加:
-lusb-1.0
到gcc命令,它应该编译。