g++-4.5.2源码构建&c++0x演示

原创 2011年01月11日 16:29:00

title - g++-4.5.2 Build & Install & c++0x demo

[1].http://blog.csdn.net/pongba/archive/2007/04/11/1561194.aspx
[2].http://www.bccn.net/Article/kfyy/cjj/jszl/200607/4179.html
[3].http://www2.research.att.com/~bs/C++0xFAQ.html

1. Prerequisites
$sudo apt-get install build-essential
1.1. http://gcc.gnu.org/install/prerequisites.html
~/software/gcc$wget ftp://gcc.gnu.org/pub/gcc/infrastructure/mpc-0.8.1.tar.gz
~/software/gcc$wget ftp://gcc.gnu.org/pub/gcc/infrastructure/gmp-4.3.2.tar.bz2
~/software/gcc$wget ftp://gcc.gnu.org/pub/gcc/infrastructure/mpfr-2.4.2.tar.bz2

1.2. http://gcc.gnu.org/mirrors.html
选择一个可用ftp站点
$wget ftp://gd.tuwien.ac.at/gnu/gcc/releases/gcc-4.5.2/gcc-core-4.5.2.tar.bz2
$wget ftp://gd.tuwien.ac.at/gnu/gcc/releases/gcc-4.5.2/gcc-g++-4.5.2.tar.gz

1.3.解压
~/software/gcc$tar xjf gcc-core-4.5.2.tar.bz2
~/software/gcc$tar xjf gcc-g++-4.5.2.tar.bz2
~/software/gcc$tar xjf gmp-4.3.2.tar.bz2
~/software/gcc$tar xjf mpfr-2.4.2.tar.bz2
~/software/gcc$tar xzf mpc-0.8.1.tar.gz

~/software/gcc$ ll
总计 37448
drwxr-xr-x 23 zhoubo zhoubo     4096 01-11 10:41 gcc-4.5.2
-rw-r--r--  1 zhoubo zhoubo 28241468 01-10 18:49 gcc-core-4.5.2.tar.bz2
-rw-r--r--  1 zhoubo zhoubo  6479975 01-10 18:50 gcc-g++-4.5.2.tar.bz2
drwxr-xr-x 16 zhoubo zhoubo     4096 01-11 10:12 gmp-4.3.2
-rw-r--r--  1 zhoubo zhoubo  1897483 01-11 10:10 gmp-4.3.2.tar.bz2
drwxr-xr-x  5 zhoubo zhoubo     4096 01-11 10:29 mpc-0.8.1
-rw-r--r--  1 zhoubo zhoubo   544950 01-11 10:05 mpc-0.8.1.tar.gz
drwxr-xr-x  7 zhoubo zhoubo    20480 01-11 10:22 mpfr-2.4.2
-rw-r--r--  1 zhoubo zhoubo  1077886 01-11 10:05 mpfr-2.4.2.tar.bz2

2. Build & Install
~/software/gcc/gmp-4.3.2$ ./configure --prefix=/usr
~/software/gcc/gmp-4.3.2$make
~/software/gcc/gmp-4.3.2$sudo make install

~/software/gcc/mpfr-2.4.2$./configure --prefix=/usr
~/software/gcc/mpfr-2.4.2$make
~/software/gcc/mpfr-2.4.2$sudo make install

~/software/gcc/mpc-0.8.1$./configure --prefix=/usr
~/software/gcc/mpc-0.8.1$make
~/software/gcc/mpc-0.8.1$sudo make install

~/software/gcc/gcc-4.5.2$./configure --prefix=/usr
~/software/gcc/gcc-4.5.2$make
~/software/gcc/gcc-4.5.2$sudo make install

3. demo
3.1. democxx0x.cpp
#include <iostream>
#include <memory>
#include <vector>
#include <functional>
#include <tuple>
#include <string>
#include <thread>

using namespace std;

void demo_auto()
{
    cout << "*** demo auto ***" << endl;
    for (auto i = 0; i < 10; ++i)
    {
        std::cout << i << std::endl;
    }

    std::shared_ptr<int> sp(new int(1));
    std::cout << *sp << std::endl;

    std::vector<double> v;
    v.push_back(1.0);
    v.push_back(1.0/2);
    v.push_back(1.0/3);
    for (auto it = v.begin(); it != v.end(); ++it)
    {
        std::cout << *it << std::endl;
    }
}

void demo_lambda()
{
    cout << "*** demo lambda ***" << endl;

    function<int(int)> product;
    product = [&product] (int n) -> int { return n <= 1 ? 1 : n * product(n - 1); };
    cout << "The answer is: " << product(5) << endl;
}

void demo_tuple()
{
    cout << "*** demo tuple ***" << endl;

    tuple<string,int> t2("Kylling",123);
    auto t = make_tuple(string("Herring"),10, 1.23);    // t will be of type tuple<string,int,double>
    string s = get<0>(t);
    int x = get<1>(t);
    double d = get<2>(t);
   
    cout << "get<0>(t2) : " << get<0>(t2) << "/n"
         << "get<1>(t2) : " << get<1>(t2) << "/n"
         << "get<0>(t) : " << s << "/n"
         << "get<1>(t) : " << x << "/n"
         << "get<2>(t) : " << d << "/n"
         << endl;
}

void f()
{
    cout << "f()" << endl;
}

struct F
{
    void operator()()
    {
        cout << "F::operator()" << endl;
    }
};

void demo_thread()
{
    cout << "*** demo thread ***" << endl;
    thread t1{f};
    thread t2{F()};
    t1.join();
    t2.join(); 
}

int main(int argc, char *argv[])
{
    demo_auto();
    demo_lambda();
    demo_tuple();
    demo_thread();
    return 0;
}

3.2. compile
~/test/cpp0x$g++  -Wall -O2 -std=c++0x -pthread -o democxx0x democxx0x.cpp

cmake实例演示

一、开胃菜 hello目录下的文件结构: ? ./CMakeLists.txt 1 2 3 4 ├── CMak...
  • gsls181711
  • gsls181711
  • 2014年10月22日 15:33
  • 961

建立spring-framework源码工程

这哥们写的不错,基本上把能出的情况 都出了! http://wind-bell27.iteye.com/blog/1969930 http://www.cnblogs.com/xleequ...
  • wangzhenfei444
  • wangzhenfei444
  • 2016年05月24日 16:12
  • 1767

跨浏览器复制神器 ZeroClipboard 2.x快速入门详解

有些时候,我们希望让用户在网页上完成某个操作就能自动将指定的内容复制到用户计算机的剪贴板中。但是出于安全原因,大多数现代浏览器都未提供通用的剪贴板复制接口(或即便有,也默认被禁用)。只有IE浏览器可以...
  • qq_22074635
  • qq_22074635
  • 2016年01月27日 14:21
  • 221

A*寻路算法讲解+源码DEMO演示

本文源码下载地址:http://download.csdn.net/detail/sun2043430/5907609 源起 最近回头温习云风的书,看到A*寻路算法,这个算法也是我一直想学习实现一下的...
  • sun2043430
  • sun2043430
  • 2013年08月11日 16:21
  • 3373

Jenkins入门教程之--构建软件项目

Jenkins可以用于执行典型的构建服务器工作,例如执行连续/官方/每晚构建,运行测试或执行一些重复的批处理任务。这在Jenkins被称为“自由式软件项目”。 设置项目 转到Jenkins首页,选...
  • wh211212
  • wh211212
  • 2016年12月06日 16:43
  • 963

Tomcat源码分析环境搭建(Tomcat源码阅读系列之一)

前言 安装基本环境 check out相应的Tomcat源代码 搭建Eclipse编译共工程环境 导入工程到Eclipse 配置Eclipse环境 运行Tomcat前言Tomcat是个不过的Http服...
  • u013180299
  • u013180299
  • 2016年08月09日 11:17
  • 435

A*寻路算法讲解+源码DEMO演示

本文源码下载地址:http://download.csdn.net/detail/sun2043430/5907609(第一版) http://download.csd...
  • qq_35653247
  • qq_35653247
  • 2016年08月27日 14:35
  • 2867

spring源码学习环境搭建

spring 源码下载:https://github.com/spring-projects/spring-framework?source=cc# 学习源码是一件非常耗时费力的事情,需要有...
  • u014638988
  • u014638988
  • 2015年09月02日 15:24
  • 714

Ubuntu内核源码树的构建与安装

本文介绍了Ubuntu系统下内核源码树构建与安装的方法,构建环境基于Ubuntu 10.04和2.6.32的内核。...
  • u010096900
  • u010096900
  • 2015年06月12日 22:34
  • 1959

gradle学习笔记(三)从源码看构建流程之基本流程

一 gradle构建流程分为基本的三部:initlization,Configuration,Execution 1.初始化阶段 在这一阶段会解析加载init脚本和settings脚本,创建S...
  • yuanjw2014
  • yuanjw2014
  • 2016年11月16日 22:23
  • 234
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:g++-4.5.2源码构建&c++0x演示
举报原因:
原因补充:

(最多只允许输入30个字)