Centos6_64下 GCC-C++平台搭建
安装方法
自动安装
yum install gcc (这是)
yum install gcc-c++ (这是C++编译器)
yum install cmake
但是这样并不能安装指定版本 仅能安装系统盘中的版本,下面以centos 6X64 安装gcc 4.8.4为例
自定义安装
1. 安装gcc4.8.4
for 小白(其实我就是一枚)
下面的cd XX 表示进入某个目录 默认情况下在root目录下
cd .. or ’‘ 表示回到根目录
wget 表示从网络位置获取一个下载
1) 下载源码
wget http://ftp.gnu.org/gnu/gcc/gcc-4.8.4/gcc-4.8.4.tar.bz2 (可以根据不同的需要更改此处的版本号)
2) 解压并下载编译所需的项目
tar -jxvf gcc-4.8.4.tar.bz2
cd gcc-4.8.4
./contrib/download_prerequisites
cd .. (回到根目录 此处的.可以用空格代替)
3) 生成目录和makefile 并编译
mkdir gcc-build-4.8.4(在root下建立一个目录用来存放)
cd gcc-build-4.8.4
../gcc-4.8.4/configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
make -j4 (*这一步之后是漫长的等待~ 不要以为是死机了.....*)
4) 安装
sudo make install
5) 检查版本号
gcc --version or -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/x86_64-unknown-linux-gnu/4.8.4/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: ../configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
Thread model: posix
gcc version 4.8.4 (GCC)
2. 安装Cmake
1) 获取源 同上
wget http://www.cmake.org/files/v3.4.2/cmake-3.4.2.tar.gz(现已更新到3.5根据个人需要选择,此版本相对比较稳定)
2) 解压并进入目录
tar -zxvf cmake-3.4.2.tar.gz
cd cmake-3.4.2
3) 十分重要也容易报错的部分
./bootstrap
错误1
gmake: “cmake”是最新的。
/home/src/cmake-2.8.12.2/Bootstrap.cmk/cmake: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by /home/src/cmake-2.8.12.2/Bootstrap.cmk/cmake)
尝试运行
strings /usr/lib/libstdc++.so.6 | grep GLIBCXX
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_FORCE_NEW
GLIBCXX_DEBUG_MESSAGE_LENGTH
此为libstdc++.so.6版本较低造成
从网络上获取
wget http://ftp.de.debian.org/debian/pool/main/g/gcc-4.7/libstdc++6_4.7.2-5_i386.deb (根据需求获取)
tar -x libstdc++6_4.7.2-5_i386.deb && tar xvf data.tar.gz
从刚刚安装的gcc入手
顺着gcc安装路径,找到了新的libstdc++:
strings /usr/local/lib64/libstdc++.so.6.0.20|grep GLIBCXX(此处6.后面的视版本而定)
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19
GLIBCXX_3.4.20
GLIBCXX_FORCE_NEW
GLIBCXX_DEBUG_MESSAGE_LENGTH
不错这里就有合乎要求的
结合前两种 继续
cp /usr/local/lib/libstdc++.so.6.0.20 /usr/lib/ (复制到usr目录下)
cd /usr/lib/ (到该目录)
rm -f libstdc++.so.6 (删除老的lib)
ln -s libstdc++.so.6.0.20 libstdc++.so.6 (重新建立链接)
strings /usr/lib/libstdc++.so.6 | grep GLIBCXX (再次查看)
注意lib64下的目录也要更新! 这里不再赘述 改改后缀即可
错误2
Error when bootstrapping CMake:
Cannot find appropriate C(或者是C++) compiler on this system.
Please specify one using environment variable CC.
See cmake_bootstrap.log for compilers attempted.
缺少合适的C/C++编译器, 此时应关注gcc的版本是否匹配,本例中应该是匹配的!~
4) 后续安装
gmake
gmake install
cmake --version
3. 验证
//fir.cc
#include <iostream>
using namespace std;
int main()
{
cout <<"Hello world!" <<endl;
return 0;
}
cmd中输入
g++ -std=c++11 -o fir fir.cc
./fir.cc(如果不能运行 说明未提供权限 加上权限 chmod +x fir.cc)