基本问题
YouCompleteMe在低版本Linux上安装有以下问题:
- 编译YCM本身需要高版本的编译器
- YCM需要的 clangd是下载的二进制,clangd依赖较高版本的 glibc,低版本Linux上的glibc无法满足clangd 二进制的运行要求
解决方法
-
third_pardy/ycmd/build.py修改,直接给cmake指定编译器路径,使用高版本的编译器
compiler_args = ['-DCMAKE_C_COMPILER=/xxxx/gcc-10.3.0/bin/gcc', '-DCMAKE_CXX_COMPILER=/xxx/gcc-10.3.0/bin/c++'] cmake_args.extend(compiler_args)
- 源码编译一个clangd,替换掉YCM自己下载的二进制
编译过程
git clone https://github.com/llvm/llvm-project.git
cd llvm-project/llvm/
mkdir build
cd build
cmake -G "Unix Makefiles" \
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
-DCMAKE_C_COMPILER=/data/soft/distcc/gcc-10.3.0/bin/gcc \
-DCMAKE_CXX_COMPILER=/data/soft/distcc/gcc-10.3.0/bin/c++ \
-DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra" \
-DCMAKE_INSTALL_PREFIX=/home/like12/opt/llvm \
-DCMAKE_BUILD_TYPE=Release \
../
make install