下载安装包
编译安装Clang
需要下载7个文件,分别是
1、llvm-7.0.0.src.tar.xz
2、cfe-7.0.0.src.tar.xz1
3、clang-tools-extra-7.0.0.src.tar.xz
4、compiler-rt-7.0.0.src.tar.xz
5、libcxx-7.0.0.src.tar.xz
6、libcxxabi-7.0.0.src.tar.xz
7、libunwind-7.0.0.src.tar.xz
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| version=7.0.0 url=http://releases.llvm.org/$version file1=llvm-$version.src file2=cfe-$version.src file3=clang-tools-extra-$version.src file4=compiler-rt-$version.src file5=libcxx-$version.src file6=libcxxabi-$version.src file7=libunwind-$version.src
for file in $file{1..7} do [ -f $file.tar.xz ] || wget $url/$file.tar.xz done
|
编译安装
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
| path=$PWD/$0 cd ${path%/*}
for file in `ls .` do [[ $file =~ "llvm" ]] && version=$file done version=${version/*-} version=${version%.src*}
mkdir build && cd build
for file in $file{1..7} do tar xvf ../$file.tar.xz done
mv $file2 $file1/tools/clang mv $file3 $file1/tools/clang/tools/extra mv $file4 $file1/projects/compiler-rt mv $file5 $file1/projects/libcxx mv $file6 $file1/projects/libcxxabi mv $file7 $file1/projects/libunwind
export CC=gcc export CXX=g++
cmake -G"Unix Makefiles" \ -DCMAKE_CXX_COMPILER=/path/to/specified/g++ \ -DCMAKE_C_COMPILER=/path/to/specified/gcc \ -DCMAKE_INSTALL_PREFIX=/path/to/installation \ -DCMAKE_BUILD_TYPE=Release \ -DLLVM_TARGETS_TO_BUILD="X86" \ $file1
make -j 4 make install make install-cxx install-cxxabi
|
打包clang动态库
手动安装clang
的目的主要是为了安装YouCompleteMe
,需要用到的其实就只有一个动态库文件libclang.so.7
。
1 2 3 4
| mkdir lib cp -l /path/to/installation/lib/libclang.so* lib tar -cjf libclang-$version-x86_64-unknown-linux-gnu.tar.bz2 lib rm -rf lib
|