C++ 我正在使用哪个gcc?

C++ 我正在使用哪个gcc?,c++,macos,gcc,C++,Macos,Gcc,我正试图在我的Mac笔记本电脑和Mac Mini桌面上编译一个包。它可以在笔记本电脑上成功编译,但不能在迷你电脑上编译(给出以下错误:gcc:error:unrecogned命令行选项'-Xarch\u x86\u 64')。这两台机器都运行OS X Yosemite(10.10.2)。在两台机器上,当我打字时 which gcc echo $PATH ls -l /usr/local/bin/gcc gcc --version 我得到: gcc:别名为nocorrect gcc (我不

我正试图在我的Mac笔记本电脑和Mac Mini桌面上编译一个包。它可以在笔记本电脑上成功编译,但不能在迷你电脑上编译(给出以下错误:
gcc:error:unrecogned命令行选项'-Xarch\u x86\u 64'
)。这两台机器都运行OS X Yosemite(10.10.2)。在两台机器上,当我打字时

which gcc
echo $PATH
ls -l /usr/local/bin/gcc
gcc --version
我得到:

gcc:别名为nocorrect gcc

(我不知道这是什么意思)当我打字时

which gcc
echo $PATH
ls -l /usr/local/bin/gcc
gcc --version
我得到:

/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin

这使我认为,如果在/usr/local/bin中找到一个gcc,那就是我的gcc。我打字的时候

which gcc
echo $PATH
ls -l /usr/local/bin/gcc
gcc --version
我得到:

/usr/local/bin/gcc->/usr/local/bin/gcc-4.8

在两台机器上。然而,当我打字时

which gcc
echo $PATH
ls -l /usr/local/bin/gcc
gcc --version
在Mini上,我得到:

gcc(自制gcc48 4.8.4)4.8.4

版权(C)2013免费软件基金会,公司< /P> 这是自由软件;有关复制条件,请参见源。没有担保;甚至不是为了适销性或适合某一特定目的

在笔记本电脑上,我得到:

配置为:--prefix=/Applications/Xcode.app/Contents/Developer/usr--gxx include dir=/usr/include/c++/4.2.1

苹果LLVM版本6.0(clang-600.0.57)(基于LLVM 3.5svn)

目标:x86_64-apple-darwin14.1.0

线程模型:posix

这是XCode安装的版本。(这是我在两台机器上从
/usr/bin/gcc--version
获得的信息)


当我路径中的第一个gcc是gcc 4.8的符号链接时,笔记本电脑是如何使用gcc 4.2的?我如何使mini也这样做?

nocorrect前缀是一个zsh结构,将禁止拼写更正

看起来您可能已经在Mac Mini上安装了一个带有homebrew的特定gcc版本,并且正在笔记本电脑上使用系统编译器(或者更确切地说,使用XCode命令行工具安装的系统编译器)

如果您不想使用与自制软件一起安装的gcc,您可以执行以下操作:

brew unlink gcc

这将使符号链接消失,您将使用下一个编译器。希望这就是您想要的路径。

哪个gcc
返回类似于
gcc:nocorrect gcc
的内容时,获取实际路径的方法是指向unalias foo,如下所示:

$ unalias gcc
$ which gcc
/usr/bin/gcc
这将删除当前shell的别名,您必须打开一个新的终端或自己重新为其添加别名

如果不希望这样做,则可以使用bash确定命令的来源:

$ bash -c 'which gcc'
/usr/bin/gcc

使用C++11/14新语法测试您的xcode gcc版本。4.2不支持C++11/14,哈哈哈!我现在意识到,我的问题其实可以归结为好奇,为什么笔记本电脑会使用4.2,而它看起来像mini一样指向4.8。但是现在我想要的是mini使用4.2,所以这个答案是有效的!