C++11:OpenSuSe11下编译gcc 4.7.1
来源:互联网 发布:python 2.7支持中文吗 编辑:程序博客网 时间:2024/06/05 12:33
C++11发布有了一年,一直没有激情来学习新的特性。GCC 4.7.1编译器也是支持C++11比较好的编译器。本帖简单把GCC编译器,在OpenSuSe11编译的过程给纪录下来,以供自己或大家参考。这里的过程,也是网上搜索的,尝试编译成功,在此向他们表示感谢,在后文列出链接。
GCC 4.7.1版本编译需要三个库,GMP 4.2+, MPFR 2.3.1+ and MPC 0.8.0+,至于为什么需要这三个库,没搞明白,安装起来也不复杂,留待以后再说吧。三个库的链接如下所示,可以下载能够配套上的版本。
http://www.multiprecision.org/mpc下载mpc-0.9.tar.gz
ftp://ftp.gnu.org/gnu/gmp/gmp-5.0.1.tar.bz2 下载gmp-5.0.1.tar.bz2
http://ftp.gnu.org/gnu/mpfr/ 下载mpfr-3.1.0.tar.xz。
第一步:安装gmp,在跟opt目录吓创建gmp-5.0.1存放库文件,命令如下:
#sudo mkdir -p /opt/gmp-5.0.1
#tar -jxvf gmp-5.0.1.tar.bz2
#cd gmp-5.0.1
#./configure --prefix=/opt/gmp-5.0.1
#make && make check && sudo make install
第二步:安装mpfr,安装mpfr是需要依赖gmp库,命令如下:
#sudo mkdir -p /opt/mpfr-3.1.1
#tar -jxvf mpfr-3.1.1.tar.bz2
#cd mpfr-3.1.1
#./configure --prefix=/opt/mpfr-3.1.1 --with-gmp=/opt/gmp-5.0.1
#make && make check && sudo make install
第三步:安装npc,mpc依赖gmp和mpfr库,命令如下:
#sudo mkdir -p /opt/mpc-0.9
#tar -zxvf mpc-0.9.tar.gz
#cd mpc-0.9
#./configure --prefix=/opt/mpc-0.9 --with-gmp=/opt/gmp-5.0.1 --with-mpfr=/opt/mpfr-3.1.1
#make && make check && sudo make install
第四步:安装gcc
下载gcc4.7.1版本,网上有很多,找对4.7.1版本,下载的路径:http://gcc.gnu.org/mirrors.html。命令如下:
#export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/gmp-5.0.1/lib:/opt/mpfr-3.1.1/lib:/opt/mpc-0.9/lib
#sudo mkdir -p /opt/gcc-4.7.1
#mkdir build && cd build
#../gcc-4.7.1/configure --prefix=/opt/gcc-4.7.1 --with-gmp=/opt/gmp-5.0.1 --with-mpfr=/opt/mpfr-3.1.1 --with-mpc=/opt/mpc-0.9
#make -j8
漫长的等待,用的是虚拟机,更是慢,编译顺利的话,就可以执行。这里的-j8选项是表示同时有8个并发任务编译,在性能比较好机器上,可能没有问题。如果性能比较差,不建议用这个选项,我在双核的机器编译出现问题。可以直接make,不加这个j选项。
#make check
#make install
第五步:设置gcc路径,安装gcc环境,要使得新版本起作用
#vim gccvars.sh
# filename: gccvars.sh
# source gccvars.sh to set the environment of gcc
export C_INCLUDE_PATH=/usr/include:$C_INCLUDE_PATH
export CPLUS_INCLUDE_PATH=$C_INCLUDE_PATH
export OBJC_INCLUDE_PATH=$C_INCLUDE_PATH
export LIBRARY_PATH=/usr/lib:$LIBRARY_PATH
export GCCDIR=/opt/gcc-4.7.1
export PATH=$GCCDIR/bin:$PATH
export LD_LIBRARY_PATH=$GCCDIR/lib:$GCCDIR/lib64:/opt/gmp-5.0.1/lib:/opt/mpfr-3.1.1/lib:/opt/mpc-0.9/lib:$LD_LIBRARY_PATH
export MANPATH=$GCCDIR/share/man:$MANPATH
#source gccvars.sh
第六步:测试c++代码
#vim test.cpp
// filename: test.cpp
// Program to test the new C++11 lambda syntax
// g++ test.cpp -std=c++11 -o a.out
#include <iostream>
using namespace std;
int main()
{
cout << [](int m, int n) { return m + n;} (2,4) << endl;
return 0;
}
#g++ test.cpp -std=c++11 -0 test
#./test
备注:缺省的gcc版本过低,为了不必要每次都安装gcc环境,可以在系统启动的时候,把gcc给安装好。把gccvars.sh文件的内容添加到/etc/profile文件的末尾。
参考:
1、http://blog.csdn.net/gengshenghong/article/details/7498085
2、http://blog.sina.com.cn/s/blog_493667730100zt6n.html
- C++11:OpenSuSe11下编译gcc 4.7.1
- winxp下安装opensuse11.1
- linux下GCC编译C程序
- linux下gcc编译c程序
- Linux下用gcc编译c程序
- Linux下gcc编译c源程序
- linux下GCC编译C程序(一)
- LINUX 下GCC编译C、C++入门
- 硬盘安装Opensuse11.1
- OpenSUSE11.1安装指南
- Fedora16下编译安装GCC 4.7
- cygwin下编译安装gcc 4.7.2
- 在 Ubuntu 12.04 下编译 GCC 4.7
- 使用gcc编译1-3.c
- linux gcc 编译 c
- gcc编译C语言
- gcc编译c问题
- gcc 编译C
- oracle SQL性能优化
- hdu4363 Draw and paint(hard DP )
- oracle恢复删除的表或表记录的方法
- MFC(窗口,菜单栏,状态等的风格,孙鑫C++第九讲笔记整理)
- oracle网络配置和连接管理
- C++11:OpenSuSe11下编译gcc 4.7.1
- Android Training - 和其他程序交互(2) - 从一个activity取得结果
- Linux进程间通信IPC(三)--- signal
- 字符串移位包含问题(KMP)
- ORACLE 11g 关于用户密码过期的问题解决
- Oracle 10g 修改主机名或者IP解决EM无法重启
- Android Training - 和其他程序交互(3) - 允许其他程序启动你的activity
- oracle 行转列 列转行
- 构建图像的缩略图的方法