安装bcc-tools 和 gcc 4.8+
一. 安装cmake
cmake是一种跨平台的编译工具,安装过程如下:
下载源码包:https://cmake.org/files/v3.8/cmake-3.8.0.tar.gz
解压:tar -xf cmake-3.8.0.tar.gz
引导程序运行:./bootstrap
编译gmake
安装:make install
环境配置:echo 'export PATH=$PATH:/usr/local/bin' >> ~/.bashrc && source ~/.bashrc
二. 安装llvm4.0
下载llvm源码包:wget http://releases.llvm.org/4.0.0/llvm-4.0.0.src.tar.xz
解压:tar -xf llvm-4.0.0.src.tar.xz
下载clang: wget http://releases.llvm.org/4.0.0/cfe-4.0.0.src.tar.xz
解压:tar -xf cfe-4.0.0.src.tar.xz
mv cfe-4.0.0.src llvm-4.0.0.src/tools/
mkdir llvm-build
cd llvm-build
cmake -G 'Unix Makefiles' -DCMAKE_INSTALL_PREFIX=/usr/local -DLLVM_TARGETS_TO_BUILD='BPF;X86' -DCMAKE_BUILD_TYPE=Release ../llvm-4.0.0.src
(su切换为超级用户)
make
make install
编译的时间稍微有点儿长。
备注:
在gcc升级且配置了export之后,如果报错
[ 8%] Building AttributesCompatFunc.inc...
../../bin/llvm-tblgen: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.14' not found (required by ../../bin/llvm-tblgen)
../../bin/llvm-tblgen: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.17' not found (required by ../../bin/llvm-tblgen)
../../bin/llvm-tblgen: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.19' not found (required by ../../bin/llvm-tblgen)
../../bin/llvm-tblgen: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by ../../bin/llvm-tblgen)
解决
cd /usr/lib64 && unlink libstdc++.so.6 && ln -s /usr/local/lib64/libstdc++.so.6.0.19 libstdc++.so.6
/usr/local/lib64/libstdc++.so.6.0.19 是进行了下面gcc的升级步骤之后才有的
三. 安装其他库
libelf
sudo yum install -y elfutils-libelf-devel
luajit
sudo wget http://luajit.org/download.html/LuaJIT-2.0.5.tar
tar zxvf LuaJIT-2.0.4.tar.gz
cd LuaJIT-2.0.4
make && sudo make install
四. 安装bcc-tools
git clone https://github.com/iovisor/bcc.git
mkdir bcc/build; cd bcc/build
cmake .. -DCMAKE_INSTALL_PREFIX=/usr
make
sudo make install
https://blog.csdn.net/luckgl/article/details/88355074
1.获取gcc4.8.5的源码包
wget http://ftp.gnu.org/gnu/gcc/gcc-4.8.5/gcc-4.8.5.tar.bz2
2.解压压缩包
tar -jxvf gcc-4.8.5.tar.bz2
3.进入解压后的目录
cd gcc-4.8.5
4.下载、配置和安装需要的依赖库
./contrib/download_prerequisites
这个脚本文件会自动帮我们下载、配置、安装依赖库,可以节约我们大量的时间和精力。
5.直接在当前目录下创建一个目录,存放编译后的文件。
mkdir gcc-build-4.8.5
6.进入这个目录来编译
cd gcc-build-4.8.5
7.生成Makefile文件,准备编译整个项目(gcc4.8.5)
../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib
8.编译gcc4.8.5的源码,非常耗时,时间决定于你的机器的性能。
make
configure: error: C++ compiler missing or inoperational
make[2]: \*** [configure-stage1-libcpp] Error 1
make[2]: Leaving directory `/home/liukk/gcc-4.8.1'
make[1]: \*** [stage1-bubble] Error 2
make[1]: Leaving directory `/home/liukk/gcc-4.8.1'
make: \*** [all] Error 2
解决办法:
安装如下内容:
yum install gcc-c++
9.安装gcc4.8.5(非root用户要在前面加sudo)
make install
10.查看gcc和g++的版本
gcc --version
g++ --version
正确提示为:
gcc (GCC) 4.8.5
g++ (GCC) 4.8.5
11.centos的gcc版本一般比较低,有时候需要用到高版本的gcc,所以回自己装一个。
cmake执行编译的时候,默认使用/usr/bin目录下的gcc/g++去进行编译,很多时候我们的库文件是用新版本的gcc编译的,所以会出现莫名其妙的错误,但是错误会包含 gcclib版本之类的信息。
自己装的gcc一般目录在/usr/local/bin目录下,所以需要制定gcc的目录
export CC=/usr/local/bin/gcc export CXX=/usr/local/bin/g++
#先要清除cmake的缓存文件,再执行,针对本次安装步骤就是要清楚llvm-build中的内容 cmake /path/to/your/project make