我使用哪个gcc?

时间:2015-03-13 01:20:56

标签: c++ macos gcc

我正在尝试在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做同样的事情?

2 个答案:

答案 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