Search code examples
macosvimclangllvm-clang

Locate libclang.so on OSX10.10?


I'm trying to make my YouCompleteMe work which is a vim auto-completion plugin.

I use

sudo find / -name "libclang.so" -print

to locate my libclang.so. I got result

find: /dev/fd/3: Not a directory
find: /dev/fd/4: Not a directory

I'm wondering that does that mean there is no libclang.so on my mac?

After that I installed llvm-clang under my ~ directory following these commands:

cd ~/llvm-clang
svn co http://llvm.org/svn/llvm-project/llvm/trunk llvm
cd llvm/tools
svn co http://llvm.org/svn/llvm-project/cfe/trunk clang
cd ../..
cd llvm/tools/clang/tools
svn co http://llvm.org/svn/llvm-project/clang-tools-extra/trunk extra
cd ../../../..
cd llvm/projects
svn co http://llvm.org/svn/llvm-project/compiler-rt/trunk compiler-rt
cd ../..
mkdir llvm-build
cd llvm-build/
cmake -G "Unix Makefiles" ../llvm
make

Everything worked fine so far. However, I ran

sudo find / -name "libclang.so" -print

I got the same result.

Anyway, I don't know if this helps to make the question more clear:

$ sudo find / -name "llvm" -print



find: /dev/fd/3: Not a directory
find: /dev/fd/4: Not a directory
/Library/Frameworks/Mono.framework/Versions/4.2.1/docs/llvm
/Library/Frameworks/Mono.framework/Versions/4.2.1/include/llvm
/Library/Frameworks/Mono.framework/Versions/4.2.1/share/llvm
/Users/yangyy/.vim/bundle/syntastic/syntax_checkers/llvm
/Users/yangyy/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/llvm
/Users/yangyy/llvm-clang/llvm
/Users/yangyy/llvm-clang/llvm/bindings/go/llvm
/Users/yangyy/llvm-clang/llvm/bindings/ocaml/llvm
/Users/yangyy/llvm-clang/llvm/bindings/python/llvm
/Users/yangyy/llvm-clang/llvm/include/llvm
/Users/yangyy/llvm-clang/llvm/tools/clang/tools/extra/clang-tidy/llvm
/Users/yangyy/llvm-clang/llvm/tools/clang/tools/extra/test/clang-tidy/Inputs/Headers/llvm
/Users/yangyy/llvm-clang/llvm-build/cmake/modules/CMakeFiles/Export/lib/cmake/llvm
/Users/yangyy/llvm-clang/llvm-build/include/llvm
/Users/yangyy/llvm-clang/llvm-build/lib/cmake/llvm
/Users/yangyy/llvm-clang/llvm-build/tools/clang/tools/extra/clang-tidy/llvm
/usr/share/file/magic/llvm

Where is the libclang.so?

Why there is no libclang.so after installing clang?


Solution

  • OSX uses .dylib for shared libraries, not .so.

    With Xcode installed, I can find it with:

     $ find /Applications/Xcode.app -name libclang.dylib
     /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/libclang.dylib
    

    Given it's in Xcode's default library directory, you should be able to link it in simply using -lclang if you use the Xcode command line tools.