我使用的是哪个 gcc?
which gcc am I using?
我正在尝试在我的 Mac 笔记本电脑和 Mac 迷你台式机上编译一个包。它在笔记本电脑上编译成功,但在 mini 上编译失败(出现以下错误:gcc: error: unrecognized command line option '-Xarch_x86_64'
)。两台机器都是 运行 OS X Yosemite (10.10.2)。在两台机器上,当我输入
which gcc
我得到:
gcc: aliased to nocorrect gcc
(我不知道这是什么意思)当我输入
echo $PATH
我得到:
/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin
这让我觉得如果在 /usr/local/bin 中找到 gcc,那将是我的 gcc。当我输入
ls -l /usr/local/bin/gcc
我得到:
/usr/local/bin/gcc -> /usr/local/bin/gcc-4.8
在两台机器上。但是,当我输入
gcc --version
在 Mini 上我得到:
gcc (Homebrew gcc48 4.8.4) 4.8.4
Copyright (C) 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
在笔记本电脑上我得到:
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 6.0 (clang-600.0.57) (based on LLVM 3.5svn)
Target: x86_64-apple-darwin14.1.0
Thread model: posix
XCode安装的版本。 (这是我从 /usr/bin/gcc --version
两台机器上得到的)
当我路径中的第一个 gcc 是 gcc 4.8 的符号链接时,笔记本电脑如何使用 gcc 4.2,我如何让 mini 做同样的事情?
nocorrect
前缀是一个 zsh 结构,会禁止拼写更正。
看起来你可能已经在 Mac Mini 上安装了带有自制软件的特定 gcc 版本,并且你正在使用系统编译器(或者更确切地说,是用 XCode 命令行工具安装的那个) 在笔记本电脑上。
如果你不想使用homebrew安装的gcc,你可以这样做:
brew unlink gcc
这将使符号链接消失,您将使用下一个编译器。希望是你想要的那个。
当 which gcc
returns 类似 gcc: aliased to nocorrect gcc
时,获取实际路径的方法是取消别名 foo,如下所示:
$ unalias gcc
$ which gcc
/usr/bin/gcc
这将删除当前 shell 的别名,您将不得不打开一个新终端或自己重新设置别名。
如果您不想这样做,那么您可以使用 bash 来确定命令的来源:
$ bash -c 'which gcc'
/usr/bin/gcc
我正在尝试在我的 Mac 笔记本电脑和 Mac 迷你台式机上编译一个包。它在笔记本电脑上编译成功,但在 mini 上编译失败(出现以下错误:gcc: error: unrecognized command line option '-Xarch_x86_64'
)。两台机器都是 运行 OS X Yosemite (10.10.2)。在两台机器上,当我输入
which gcc
我得到:
gcc: aliased to nocorrect gcc
(我不知道这是什么意思)当我输入
echo $PATH
我得到:
/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin
这让我觉得如果在 /usr/local/bin 中找到 gcc,那将是我的 gcc。当我输入
ls -l /usr/local/bin/gcc
我得到:
/usr/local/bin/gcc -> /usr/local/bin/gcc-4.8
在两台机器上。但是,当我输入
gcc --version
在 Mini 上我得到:
gcc (Homebrew gcc48 4.8.4) 4.8.4
Copyright (C) 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
在笔记本电脑上我得到:
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 6.0 (clang-600.0.57) (based on LLVM 3.5svn)
Target: x86_64-apple-darwin14.1.0
Thread model: posix
XCode安装的版本。 (这是我从 /usr/bin/gcc --version
两台机器上得到的)
当我路径中的第一个 gcc 是 gcc 4.8 的符号链接时,笔记本电脑如何使用 gcc 4.2,我如何让 mini 做同样的事情?
nocorrect
前缀是一个 zsh 结构,会禁止拼写更正。
看起来你可能已经在 Mac Mini 上安装了带有自制软件的特定 gcc 版本,并且你正在使用系统编译器(或者更确切地说,是用 XCode 命令行工具安装的那个) 在笔记本电脑上。
如果你不想使用homebrew安装的gcc,你可以这样做:
brew unlink gcc
这将使符号链接消失,您将使用下一个编译器。希望是你想要的那个。
当 which gcc
returns 类似 gcc: aliased to nocorrect gcc
时,获取实际路径的方法是取消别名 foo,如下所示:
$ unalias gcc
$ which gcc
/usr/bin/gcc
这将删除当前 shell 的别名,您将不得不打开一个新终端或自己重新设置别名。
如果您不想这样做,那么您可以使用 bash 来确定命令的来源:
$ bash -c 'which gcc'
/usr/bin/gcc