时间:2021-05-20
配置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 allyum makecache使用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/srcwget 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编译
在编译输出目录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
到此这篇关于Linux配置C++11编译环境的文章就介绍到这了,更多相关C++11编译环境内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
c++11之后有了标准的线程库:std::thread。之前一些编译器使用C++11的编译参数是-std=c++11g++-std=c++11test.cpps
前言C++类中有几个特殊的非静态成员函数,当用户未定义这些函数时,编译器将给出默认实现。C++11前有四个特殊函数,C++11引入移动语义特性,增加了两个参数为
由于gcc在5.x版本修改了ABI,导致新版本gcc编译的二进制文件放在老的环境下会报错,所以需要安装gcc4.8.5。4.8.5这个版本支持c++11。首先尝
1,简介C++11中加入了头文件,此头文件主要声明了std::thread线程类。C++11的标准类std::thread对线程进行了封装,定义了C++11标准
前言C++11之前valuecategories只有两类,lvalue和rvalue,在C++11之后出现了新的valuecategories,即prvalue