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

相关文章推荐

C++0x Concurrency in Action

  • 2012年04月19日 15:51
  • 2.13MB
  • 下载

C++0x标准资料收集

  • 2011年11月06日 19:33
  • 14.76MB
  • 下载

新C++标准:C++0x教程(二):面向所有开发者的特性(上)

译者:yurunsun@gmail.com 新浪微博@孙雨润 新浪博客 CSDN博客日期:2012年11月12日 ...

VC10中的C++0x特性

  • 2014年05月06日 12:44
  • 1008KB
  • 下载

C++0x_新特性

  • 2012年02月29日 08:55
  • 423KB
  • 下载

C++0x 内存模型和原子操作 (std:::atomic memory order等相关资料)

并行编程的趋势不可阻挡啊,新的c++标准也加入了很多支持。内存模型和 std::atomic 的引入很值得学习吧,看facebook的开源c++库都用了很多c++ 11的特性了。 std::atomi...

c++0x 问答

  • 2011年12月22日 16:54
  • 1.9MB
  • 下载

新C++标准:C++0x教程(三):面向所有开发者的特性(中)

本文转载自:雨润的技术博客 http://blog.csdn.net/sunyurun 这些是Scott Meyers培训教程《新C++标准:C++0x教程》的官方笔记,培训课程的描述请见 ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:g++-4.5.2源码构建&c++0x演示
举报原因:
原因补充:

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