I'm trying to set my neovim C++ development environment, and want to use ccls
as my coc language server.
When I installed ccls
using Homebrew
, it installs libffi
and llvm
as dependencies.
It seems like ccls
is installed successfully, but it seems like I need to configure PATH
variable,LDFLAGS
and CPPFLAGS
.
But I don't know what libffi
and llvm
are for, and they suggest different LDFLAGS
and CPPFLAGS
, which is confusing.
Is it okay not to export any variables to use ccls
? Or, which version should I export in my ~/.zshrc
?
Below is my console output for brew install ccls
.
? brew install ccls
==> Downloading https://homebrew.bintray.com/bottles/libffi-3.3.big_sur.bottle.tar.gz
######################################################################## 100.0%
==> Downloading https://homebrew.bintray.com/bottles/llvm-11.0.0_1.big_sur.bottle.tar.gz
==> Downloading from https://d29vzk4ow07wi7.cloudfront.net/c8e30903a9a4f695780e1eeeaa2cf4d5a95141a1cac98ab1bbc811817cde39ca?response-content-disposition=attachment%3Bfilename%3D
######################################################################## 100.0%
==> Downloading https://homebrew.bintray.com/bottles/ccls-0.20201219.big_sur.bottle.tar.gz
==> Downloading from https://d29vzk4ow07wi7.cloudfront.net/934fb8fd594d6e7adbfa14b5608f1de14309db34f2cf61a0cb572bdc772b2aa3?response-content-disposition=attachment%3Bfilename%3D
######################################################################## 100.0%
==> Installing dependencies for ccls: libffi and llvm
==> Installing ccls dependency: libffi
==> Pouring libffi-3.3.big_sur.bottle.tar.gz
==> Caveats
libffi is keg-only, which means it was not symlinked into /usr/local,
because macOS already provides this software and installing another version in
parallel can cause all kinds of trouble.
For compilers to find libffi you may need to set:
export LDFLAGS="-L/usr/local/opt/libffi/lib"
export CPPFLAGS="-I/usr/local/opt/libffi/include"
==> Summary
?? /usr/local/Cellar/libffi/3.3: 17 files, 540.2KB
==> Installing ccls dependency: llvm
==> Pouring llvm-11.0.0_1.big_sur.bottle.tar.gz
==> Caveats
To use the bundled libc++ please add the following LDFLAGS:
LDFLAGS="-L/usr/local/opt/llvm/lib -Wl,-rpath,/usr/local/opt/llvm/lib"
llvm is keg-only, which means it was not symlinked into /usr/local,
because macOS already provides this software and installing another version in
parallel can cause all kinds of trouble.
If you need to have llvm first in your PATH run:
echo 'export PATH="/usr/local/opt/llvm/bin:$PATH"' >> ~/.zshrc
For compilers to find llvm you may need to set:
export LDFLAGS="-L/usr/local/opt/llvm/lib"
export CPPFLAGS="-I/usr/local/opt/llvm/include"
==> Summary
?? /usr/local/Cellar/llvm/11.0.0_1: 8,922 files, 1.4GB
==> Installing ccls
==> Pouring ccls-0.20201219.big_sur.bottle.tar.gz
?? /usr/local/Cellar/ccls/0.20201219: 5 files, 1.5MB
==> Caveats
==> libffi
libffi is keg-only, which means it was not symlinked into /usr/local,
because macOS already provides this software and installing another version in
parallel can cause all kinds of trouble.
For compilers to find libffi you may need to set:
export LDFLAGS="-L/usr/local/opt/libffi/lib"
export CPPFLAGS="-I/usr/local/opt/libffi/include"
==> llvm
To use the bundled libc++ please add the following LDFLAGS:
LDFLAGS="-L/usr/local/opt/llvm/lib -Wl,-rpath,/usr/local/opt/llvm/lib"
llvm is keg-only, which means it was not symlinked into /usr/local,
because macOS already provides this software and installing another version in
parallel can cause all kinds of trouble.
If you need to have llvm first in your PATH run:
echo 'export PATH="/usr/local/opt/llvm/bin:$PATH"' >> ~/.zshrc
For compilers to find llvm you may need to set:
export LDFLAGS="-L/usr/local/opt/llvm/lib"
export CPPFLAGS="-I/usr/local/opt/llvm/include"
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…