brew install libusb 链接失败

nad*_*nad 1 homebrew libusb

我正在Mac 中使用brew安装libusb

brew 安装 libusb

链接步骤失败如下

Error: The `brew link` step did not complete successfully The formula built, but is not symlinked into /usr/local 

Could not symlink lib/libusb-1.0.0.dylib 

Target /usr/local/lib/libusb-1.0.0.dylib already exists. 

You may want to remove it:   rm '/usr/local/lib/libusb-1.0.0.dylib'

To force the link and overwrite all conflicting files:   brew link
--overwrite libusb
Run Code Online (Sandbox Code Playgroud)

所以我删除了现有的 libusb

须藤rm'/usr/local/lib/libusb-1.0.0.dylib'

然后做了一个链接

酿造链接--覆盖libusb

链接不起作用,下面显示错误

错误:无法符号链接 lib/libusb-1.0.0.dylib

/usr/local/lib 不可写。

如果我尝试

须藤酿造链接--覆盖libusb

相反,这也不起作用。我错过了什么?

我使用的是 OSX El Capitan 版本 10.11.4 (15E65)

Mar*_*ell 7

如果事情似乎不起作用homebrew,我的一般策略是首先尝试:

brew doctor
Run Code Online (Sandbox Code Playgroud)

并按照好医生的建议去做。

如果失败,我倾向于卸载东西,通常使用--force它确实可以很好地清理并删除旧版本。所以,在你的情况下:

brew rm libusb --force
Run Code Online (Sandbox Code Playgroud)

然后重新安装“unhappy”包。所以,在你的情况下:

brew install libusb
Run Code Online (Sandbox Code Playgroud)

在评论中回答您的新问题。您的安装看起来是正确的,因为libusb它不是一个可执行程序——它只是一个没有任何相关命令行工具的库——所以当你运行which libusb.

您可以使用以下命令查看包的组成部分:

brew ls libusb

/usr/local/Cellar/libusb/1.0.20/include/libusb-1.0/libusb.h
/usr/local/Cellar/libusb/1.0.20/lib/libusb-1.0.0.dylib
/usr/local/Cellar/libusb/1.0.20/lib/pkgconfig/libusb-1.0.pc
/usr/local/Cellar/libusb/1.0.20/lib/ (2 other files)
Run Code Online (Sandbox Code Playgroud)

而且,如您所见,被/usr/local/bin调用中没有独立的可执行程序,libusb只有

  • libusb.h - 您将针对其编译的 C 头文件
  • libusb...dylib - 您可以链接的动态库
  • libusb...pc - 提供pkgconfig工具信息

因此,如果您想针对 编译和链接应用程序libusb,您可以pkg-config像这样运行以找出“包含路径”和链接器详细信息

pkg-config --cflags --libs libusb

-I/usr/local/Cellar/libusb-compat/0.1.5/include      \ 
-I/usr/local/Cellar/libusb/1.0.20/include/libusb-1.0 \
-L/usr/local/Cellar/libusb
Run Code Online (Sandbox Code Playgroud)

这意味着您的编译命令将如下所示:

gcc yourApp.c $(pkg-config --cflags --libs libusb) -o yourApp
Run Code Online (Sandbox Code Playgroud)