Ubuntu 12 04 GCC4 7启用C 11

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

               

因为想用template aliases特性,必须要GCC4.7.

又不想编译源代码,所以按照下面的方法安装。

sudo add-apt-repository ppa:ubuntu-toolchain-r/testsudo apt-get updatesudo apt-get install gcc-4.7sudo apt-get install g++-4.7

如果系统中存在多个版本的GCC,可以在CMake工程的顶层的CMakeLists.txt中配置:

cmake_minimum_required(VERSION 2.8.7)set(CMAKE_C_COMPILER "/usr/bin/gcc-4.7")set(CMAKE_CXX_COMPILER "/usr/bin/g++-4.7")project (sample)add_subdirectory(src bin)

然后在build目录下执行cmake .. 可以看到:

chenshu@chenshu-beijing:~/work/research/tree/normal_tree/build$ cmake ..-- The C compiler identification is GNU-- The CXX compiler identification is GNU-- Check for working C compiler: /usr/bin/gcc-4.7-- Check for working C compiler: /usr/bin/gcc-4.7 -- works-- Detecting C compiler ABI info-- Detecting C compiler ABI info - done-- Check for working CXX compiler: /usr/bin/g++-4.7-- Check for working CXX compiler: /usr/bin/g++-4.7 -- works-- Detecting CXX compiler ABI info-- Detecting CXX compiler ABI info - done-- Configuring done-- Generating done-- Build files have been written to: /home/chenshu/work/research/tree/normal_tree/build

不过我的方法不是CMake推荐的最佳方法,一共有三种方法可以参考:

http://www.cmake.org/Wiki/CMake_FAQ#Method_3_.28avoid.29:_use_set.28.29

How do I use a different compiler?[edit] Method 1: use environment variablesFor C and C++, set the CC and CXX environment variables. This method is not guaranteed to work for all generators. (Specifically, if you are trying to set Xcode's GCC_VERSION, this method confuses Xcode.)For example:CC=gcc-4.2 CXX=/usr/bin/g++-4.2 cmake -G "Your Generator" path/to/your/source[edit] Method 2: use cmake -DSet the appropriate CMAKE_FOO_COMPILER variable(s) to a valid compiler name or full path on the command-line using cmake -D.For example:cmake -G "Your Generator" -D CMAKE_C_COMPILER=gcc-4.2 -D CMAKE_CXX_COMPILER=g++-4.2 path/to/your/source[edit] Method 3 (avoid): use set()Set the appropriate CMAKE_FOO_COMPILER variable(s) to a valid compiler name or full path in a list file using set(). This must be done before any language is set (ie before any project() or enable_language() command).For example:set(CMAKE_C_COMPILER "gcc-4.2")set(CMAKE_CXX_COMPILER "/usr/bin/g++-4.2")project("YourProjectName")[edit]

默认C++11是不启用的。在src/CMakeLists.txt文件中加上这行:

SET(CMAKE_CXX_FLAGS "-std=c++11") # Add c++11 functionality

然后运行

cmake ..

make VERBOSE=1

你会看到编译的g++命令后面带上了:

 /usr/bin/g++-4.7    -std=c++11 

现在成功了,享受C++11吧。


           

给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow
这里写图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值