我正在尝试在Mac笔记本电脑和Mac Mini台式机上编译软件包。它在笔记本电脑上成功编译,但不能在mini上编译(出现以下错误:gcc: error: unrecognized command line option '-Xarch_x86_64'
)。两台机器都运行OS X Yosemite(10.10.2)。在两台机器上,当我输入
which gcc
我明白了:
gcc:别名为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
版权所有(C)2013 Free Software Foundation,Inc。
这是免费软件;查看复制条件的来源。没有保修;甚至不适用于适销性或特定用途的适用性。
在笔记本电脑上我得到了:
配置: - prefix = / Applications / Xcode.app / Contents / Developer / usr --with-gxx-include-dir = / usr / include / c ++ / 4.2.1
Apple 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做同样的事情?
答案 0 :(得分:0)
nocorrect
前缀是一个zsh结构,可以禁止拼写纠正。
看起来您可能已在Mac Mini上安装了带有自制程序的特定gcc版本,并且您正在使用笔记本电脑上的系统编译器(或者更确切地说,使用XCode命令行工具安装的那个)。
如果您不想使用与自制软件一起安装的gcc,您可以这样做:
brew unlink gcc
这会使符号链接消失,你将使用下一个编译器。希望是你想要的那个。
答案 1 :(得分:0)
当which gcc
返回类似gcc: aliased to nocorrect gcc
的内容时,获取实际路径的方法是使用unalias foo,如下所示:
$ unalias gcc
$ which gcc
/usr/bin/gcc
这将删除当前shell的别名,您将必须打开一个新终端或自己重新为其别名。
如果您不想这样做,则可以使用bash来确定命令的来源:
$ bash -c 'which gcc'
/usr/bin/gcc