MacOS的"-std = gnu ++ 0x"选项

Joa*_*him 4 c++ xcode gcc osx-lion c++11

我正在尝试编译一个使用的CMake项目

set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} "-Wall -std=gnu++0x")
Run Code Online (Sandbox Code Playgroud)

在MacOS X Lion下的CMakeLists.txt文件中.我已经安装了XCode 4.2.1.但编译器失败了:

cd something/src/lib && /usr/bin/c++   -Dlib_ginacra_EXPORTS -Wall -std=gnu++0x -fPIC   -o CMakeFiles/lib_ginacra.dir/utilities.cpp.o -c something/src/lib/utilities.cpp
cc1plus: error: unrecognized command line option "-std=gnu++0x"
Run Code Online (Sandbox Code Playgroud)

编译器的版本是:

c++ --version
i686-apple-darwin11-llvm-g++-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.1.00)
Run Code Online (Sandbox Code Playgroud)

Jon*_*ely 7

GCC 4.2很古老,但Apple没有发布新版本.

您可以从Mac Ports(可能更简单,更快)等地方安装现代GCC,也可以按照http://gcc.gnu.org/wiki/InstallingGCC上的说明自行构建.

  • `brew tap homebrew/versions && brew install gcc48` (6认同)
  • 最新的Xcode没有附带任何更新版本的gcc.我认为它仍然是llvm-gcc-4.2. (3认同)