共计 2275 个字符,预计需要花费 6 分钟才能阅读完成。
配置 yum 源
此处咱们应用 163 的 yum 源,配置如下
首先备份 /etc/yum.repos.d/CentOS-Base.repo
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
下载对应版本 repo 文件, 放入 /etc/yum.repos.d/(操作前请做好相应备份),以下为下载链接
https://mirrors.163.com/.help/CentOS6-Base-163.repo
运行以下命令生成 yum 缓存
yum clean all
yum makecache
<!–more–>
应用 yum 配置 c ++ 编译环境
yum 配置好之后,配置 c ++ 编译环境命令如下
yum -y install gcc gcc-g++
装置实现之后 c ++ 环境即可配置好。
写一个 hello worl 代码如下
#include<iostream>
using namespace std;
int main()
{
cout<<"Hello World!"<<endl;
return 0;
}
以上代码保留文件名为 aa.cpp,用 c ++ 编译并执行的操作如下
g++ -o hello aa.cpp
./aa.cpp
源码编译装置 c ++11 编译环境
因为 yum 自带的 gcc 版本过低,并且 c ++11 须要 gcc4.8 以上版本反对,因而须要下载 gcc4.8 以上版本以反对 c ++11
查看本地 gcc 版本
gcc -v
本次版本为gcc version 4.4.7 20120313 (Red Hat 4.4.7-17) (GCC)
获取 gcc4.8.2 版本的 source code
源码默认放在 src 目录下
cd /usr/local/src
wget http://gcc.skazkaforyou.com/releases/gcc-4.8.2/gcc-4.8.2.tar.gz
文件有 100M,国外网站下载速度很慢,请急躁期待(可用国外 vps 下载直达)
下载实现后,放在 /usr/local/src 下
解压缩
tar -zxvf gcc-4.8.2.tar.gz
编译源码并装置
进入 gcc 目录
cd gcc-4.8.2
下载配置装置 gcc4.8.2 的依赖库
./contrib/download_prerequisites
建设编译输入目录
在以后门路下执行即可
mkdir gcc-build-4.8.2
开始 configure
../configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
--enable-languages
示意你要让你的 gcc 反对那些语言--disable-multilib
不生成编译为其余平台可执行代码的穿插编译器--disable-checking
生成的编译器在编译过程中不做额定查看
编译
在编译输入目录 gcc-build-4.8.2 间接 make 即可
make
源码 make 过程耗时较长,个别须要半个小时以上。
装置
make install
验证是否降级胜利
应用 which gcc
查看 gcc 装置的为止,应用 gcc -v
查看版本,如果依然没有变,请敞开以后会话从新连贯看是否变成 4.8.2,如果仍未变,须要重启零碎
验证 C ++11 程序是否可用
lambda 表达式是 C ++11 的新个性,以下程序即可验证 c ++11 是否可用
参考:http://en.cppreference.com/w/cpp/container/array
#include <iostream>
using namespace std;
int main()
{int n = [] (int x, int y) {return x + y;}(5, 4);
cout << n << endl;
}
验证办法
g++ -std=c++11 -o lambda vv.cpp
如果应用 g ++ 不加 -std=c++11
参数,则会报错,报错如下
[root@host-192-168-150-182 tmp]# g++ -o lambda vv.cpp
vv.cpp: In function‘int main()’:
vv.cpp:9:46: warning: lambda expressions only available with -std=c++11 or -std=gnu++11 [enabled by default]
int n = [] (int x, int y) {return x + y;}(5, 4);
^
更新 gcc 动态链接库
源码编译降级装置了 gcc 后,编译程序或运行其它程序时,有时会呈现相似 /usr/lib64/libstdc++.so.6: versionGLIBCXX_3.4.18′ not found 的问题。这是因为降级 gcc 时,生成的动静库没有替换老版本 gcc 的动静库导致的,将 gcc 最新版本的动静库替换零碎中老版本的动静库即可解决。可参考以下链接
http://itbilu.com/linux/management/NymXRUieg.html
记得帮我点赞哦!
精心整顿了计算机各个方向的从入门、进阶、实战的视频课程和电子书,依照目录正当分类,总能找到你须要的学习材料,还在等什么?快去关注下载吧!!!
朝思暮想,必有回响,小伙伴们帮我点个赞吧,非常感谢。
我是职场亮哥,YY 高级软件工程师、四年工作教训,回绝咸鱼争当龙头的斜杠程序员。
听我说,提高多,程序人生一把梭
如果有幸能帮到你,请帮我点个【赞】,给个关注,如果能顺带评论给个激励,将不胜感激。
职场亮哥文章列表:更多文章
自己所有文章、答复都与版权保护平台有单干,著作权归职场亮哥所有,未经受权,转载必究!