clang_complete:OS X中的libclang.{so,dylib}在哪里?

And*_*ott 24 vim clang clang-complete

我查看了通常的地方(/ usr/lib /,/ Developer/usr/lib /,/ usr/local/lib),它不在那里.

如果没有安装,有谁知道我可以在哪里找到安装说明?

谢谢!

我不确定我是否应该关闭它,但我找到了我想要的答案:

在OS X中,安装了XCode 4,libclang.dylib位于/Developer/usr/clang-ide/lib/libclang.dylib

Pie*_*ter 24

使用最新的(appstore)XCode 4.3.2,位置发生了变化,现在可以找到它

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/libclang.dylib
Run Code Online (Sandbox Code Playgroud)

/Developer默认情况下,该目录不再存在.现在,所有内容都打包在XCode应用程序中,因此appstore的增量更新可以正常工作.

  • 请注意,您不能将其链接到“/usr/lib”,因为这是一个只读系统。但是,您可以将其链接到“/usr/local/lib/”,如下所示:“sudo ln -s /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/libclang.dylib /usr/本地/lib`。大多数构建系统仍将设法拾取它。当我编译 Rust 的“opencv”实现时,它缺失了。 (2认同)

idb*_*rii 11

您始终可以搜索文件系统.有几种方法.

在Spotlight的Mac上,这可能是最好的:

mdfind -name libclang.dylib
Run Code Online (Sandbox Code Playgroud)

但是,大多数UNIX系统还有一个locate数据库,可以轻松搜索:

locate libclang.dylib
Run Code Online (Sandbox Code Playgroud)

当所有其他方法都失败时,您可以使用find迭代文件系统(相当慢):

find / -type f -name libclang.dylib -o -name libclang.so
Run Code Online (Sandbox Code Playgroud)

你会得到一些关于不可读位置的错误,因为它们只能被root读取,但这很好(隐藏这些错误2> /dev/null).

  • 或者"mdfind -name libclang.dylib",这快一点:) (11认同)
  • 或者`找到libclang.dylib`,作为第三种选择. (2认同)

And*_*ott 10

我找到了答案:

在OS X中,安装了XCode 4,libclang.dylib位于/Developer/usr/clang-ide/lib/libclang.dylib

这只是针对那些对答案感兴趣的人发布的.


Mis*_*sty 2

在 macOS Catalina(最新,截至发布时)上,您可以在 Xcode 应用程序中找到它,如下所示:

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/libclang.dylib
Run Code Online (Sandbox Code Playgroud)

如果您只使用命令行工具并且没有安装 Xcode.app,则也可以在此处:

/Library/Developer/CommandLineTools/usr/lib/libclang.dylib
Run Code Online (Sandbox Code Playgroud)

正如@Daco Harkes所指出的,Xcode 库不包含 Objective C 头文件,因此您可能无论如何都想使用命令行工具版本。

此外,它使用了 Apple 的 Clang 版本,它可能......很奇怪,并且没有实现所有最新功能。因此,您可能需要下载 LLVM 版本,您可以从他们的网站下载该版本,也可以从 Homebrew 的 LLVM 包 ( brew install llvm) 中获取。

通过 Homebrew 安装后,可以在以下位置找到该库:

/usr/local/opt/llvm/lib/libclang.dylib
Run Code Online (Sandbox Code Playgroud)