在Mac OS X(CommandLineTools)上,c ++和g ++有什么区别?

时间:2019-01-14 22:47:16

标签: c++ xcode macos g++ xcode-command-line-tools

我看到c ++和g ++基本相同。它们可以互换使用吗?他们什么时候会不同?

$ c++ --version
Apple LLVM version 9.1.0 (clang-902.0.39.2)
Target: x86_64-apple-darwin17.7.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin
$ g++ --version
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 9.1.0 (clang-902.0.39.2)
Target: x86_64-apple-darwin17.7.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
$ which c++
/Library/Developer/CommandLineTools/usr/bin/c++
$ which g++
/Library/Developer/CommandLineTools/usr/bin/g++

1 个答案:

答案 0 :(得分:0)

在MacOS上,c++是指向clang++二进制文件的符号链接。在您的情况下,c++g++都是用于C ++的同一Clang编译器(即LLVM编译器被伪装为GNU g ++编译器)。

如果您已经为C ++安装了GCC编译器(通常称为g ++),则c ++和g ++之间的差异将是clang和gcc编译器之间的差异。例如,请参见this questionthis compiler support table