jeffreylee的个人主页

http://www.qtcn.org/bbs/u/139371  [收藏] [复制]

jeffreylee

宁静致远

  • 20

    关注

  • 27

    粉丝

  • 117

    访客

  • 等级:侠客
  • 身份:论坛版主
  • 总积分:158
  • 男,1971-01-21

最后登录:2023-07-06

更多资料

日志

Ubuntu 12.04 Qt5.0充分体验C++11编程的乐趣

2012-12-28 11:42
  正在阅读《C++ Primer 5th edition》,这是为C++11标准完全重新编写的最新版本的C++ Primer,电子书下载地址:C++ Primer 5th edition ,在Ubuntu 12.04中安装了Qt5当作学习环境,编译书中的例程。
编译如下语句遇到问题了
   struct Sales_data{
    string bookNo;
    unsigned units_sold=0;
    double revene=0.0;
};
我们知道C++11标准开始支持类内初始化(in-class initializer),Qt creator编译出现error,不支持这个特性,原因在于,Ubuntu12.04默认的是使用gcc4.6,而只有gcc4.7才支持C++11,使用如下办法升级Ubuntu 12.04下的gcc
  1. sudo add-apt-repository ppa:ubuntu-toolchain-r/test  
  2. sudo apt-get update  
  3. sudo apt-get install gcc-4.7  
  4. sudo apt-get install g++-4.7  
    升级完成使用gcc --version 显示版本依然是4.6.3,并没有把4.7版设置为默认
Qt编译时调用的/usr/bin/g++ 是个链接文件,把这个文件删除,建立链接到g++-4.7
cd /usr/bin
sudo rm g++
sudo ln -s g++-4.7 g++

sudo ln -s gcc-4.7 gcc


现在编译并执行例程,ok!编译通过了!
体验追加:
使用auto特性
编译提示:
warning: 'auto' changes meaning in C++11; please remove it [-Wc++0x-compat]
这是由于g++默认未打开对C++11的支持,在pro文件中加入CONFIG += c++11,Qt Creator编译时自动增加参数:-std=c++11


分类:默认分类|回复:1|浏览:2221|全站可见|转载
 
 
删除

xzoscar 顶一贴

2012-12-28 14:30 -

Powered by phpwind v8.7 Certificate Copyright Time now is:05-19 13:03
©2005-2016 QTCN开发网 版权所有 Gzip disabled