0

我需要使用 gcc 4.2 版附带的 OpenMP 和 Xcode 命令行工具。所以我想升级到 gcc 4.8 版。我已经安装了 gcc4.8。我这样做了-

$ sudo rm /usr/bin/gcc /usr/bin/g++
$ sudo ln -s /usr/bin/gcc /usr/bin/gcc-4.8

g++ 的类似链接。现在在 /usr/bin 中创建了一个 gcc 链接。当我执行 $ ls -la /usr/bin 时,我可以在 /usr/bin 中看到 gcc

当我这样做时,我也可以看到正确的符号链接

$ ls -la /usr/bin | grep gcc

它指向 gcc-4.8。

但是,系统只是忽略了 gcc。就好像那里不存在一样。/usr/bin 在我的 PATH 变量中。但是,gcc [tab complete] 没有出现。

$ gcc
-bash: gcc: command not found

现在编译任何 C 程序都使用位于 /usr/bin/cc 中的 cc。我不明白。我只是删除了 gcc 与 xcode CLTools 的当前符号链接并创建了一个新符号链接。考虑到我真的做得很少,我做错了什么?

谢谢你。

4

1 回答 1

1

您创建符号链接的语法不正确:第一个参数ln是您希望链接指向的位置

sudo ln -s /usr/bin/gcc-4.8 /usr/bin/gcc

从手册页ln

SYNOPSIS
     ln [-Ffhinsv] source_file [target_file]
     ln [-Ffhinsv] source_file ... target_dir

这有点令人困惑,因为“源”和“目标”可以以任何一种方式解释(即是target_file链接的目标还是ln命令的目标?)。手册页稍后澄清了这一点:

给定一个或两个参数,ln 创建一个指向现有文件 source_file 的链接。如果给出了 target_file,则链接具有该名称;target_file 也可以是放置链接的目录;否则放在当前目录下。如果仅指定目录,则链接将指向 source_file 的最后一个组件。

于 2013-05-24T18:29:26.673 回答