我使用命令g++ -v
来了解当前使用的GCC版本。但我得到以下输出:
$ g++ -v
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/usr/include/c++/4.2.1
Apple LLVM version 8.0.0 (clang-800.0.42.1)
Target: x86_64-apple-darwin16.1.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
所以我不明白。我使用g++ test.cpp
编译程序时是使用LLVM还是GCC?当我请求有关GCC的信息时,为什么会看到有关LLVM的信息? LLVM与Clang一起用作前端。
我错过了什么?
答案 0 :(得分:3)
简短的回答是你正在使用Apple的LLVM伪装成gcc / g ++。这不是一个大问题。令我恼火的一个地方是,gcc的-march=native
优化只是不能与LLVM一起工作,这导致我运行的CPU密集型程序的性能下降了约50%。
安装完整的基于gcc
的工具链涉及大量工作。请参阅Compiling GCC 6 on macOS Sierra和Compiling GCC 6 on OS X。
如果你真正的工作,你可能也想建立专门的GNU binutils等。
答案 1 :(得分:2)
您正在使用LLVM。除非您专门安装了GCC(例如使用Homebrew),否则您没有安装GCC。在您的系统上引用GCC是Clang的别名,旨在允许大多数代码编译而没有问题。