Unix 如何在运行时指定gcc版本?

Unix 如何在运行时指定gcc版本?,unix,gcc,Unix,Gcc,是否可以在unix系统上安装多个gcc版本?如果是,如何查找已安装的所有版本?此外,是否可以在运行时指定使用哪个gcc版本?是的,安装多个gcc版本是相当常见的,通常命名为gcc-version。例如,在我的机器上,我有gcc-4.4、gcc-4.5和gcc-4.6。您通常可以通过键入gcc-tab来查看您安装的版本——使用shell的自动完成功能告诉您哪些版本可用。是的,安装多个版本的gcc是很常见的,通常命名为gcc-version。例如,在我的机器上,我有gcc-4.4、gcc-4.5和g

是否可以在unix系统上安装多个gcc版本?如果是,如何查找已安装的所有版本?此外,是否可以在运行时指定使用哪个gcc版本?

是的,安装多个gcc版本是相当常见的,通常命名为gcc-version。例如,在我的机器上,我有
gcc-4.4
gcc-4.5
gcc-4.6
。您通常可以通过键入
gcc-
tab来查看您安装的版本——使用shell的自动完成功能告诉您哪些版本可用。

是的,安装多个版本的gcc是很常见的,通常命名为gcc-version。例如,在我的机器上,我有
gcc-4.4
gcc-4.5
gcc-4.6
。您通常可以通过键入
gcc-
tab来查看已安装的版本——使用shell的自动完成功能来告诉您哪些版本可用。

这里有一个在Linux上运行的步骤,可能在unix上运行

首先验证您是否有可用的
gcc

greg@greg-mint ~ $ gcc
gcc: fatal error: no input files
compilation terminated.
是的。我不喜欢我没有提供任何要编译的东西

如果您得到类似于
未找到命令gcc
未识别命令或文件:gcc
的内容,则可能存在问题

现在,找到
gcc
的位置:

greg@greg-mint ~ $ which gcc
/usr/bin/gcc
太好了。它在
/usr/bin/gcc
中,但这并没有告诉我们其他版本

让我们来了解一下:

greg@greg-mint ~ $ ls -l /usr/bin/gcc
lrwxrwxrwx 1 root root 7 Mar 28  2013 /usr/bin/gcc -> gcc-4.7
在我的机器(LinuxMint)上,它显示了一个符号链接。这意味着当我运行
gcc
命令时,它正在运行
/usr/bin/gcc-4.7

嗯。我猜它通常在
/usr/bin
中,所以,让我们看看是否还有其他内容:

greg@greg-mint ~ $ ls -l /usr/bin/gcc*
lrwxrwxrwx 1 root root       7 Mar 28  2013 /usr/bin/gcc -> gcc-4.7
-rwxr-xr-x 1 root root  275952 Jul  3  2012 /usr/bin/gcc-4.5
-rwxr-xr-x 1 root root  578808 Sep 22  2012 /usr/bin/gcc-4.7
-rwxr-xr-x 1 root root   22832 Sep 22  2012 /usr/bin/gcc-ar-4.7
-rwxr-xr-x 1 root root   22832 Sep 22  2012 /usr/bin/gcc-nm-4.7
-rwxr-xr-x 1 root root   22832 Sep 22  2012 /usr/bin/gcc-ranlib-4.7
-rwxr-xr-x 1 root root  220968 Oct  9  2012 /usr/bin/gccxml
-rwxr-xr-x 1 root root 8606464 Oct  9  2012 /usr/bin/gccxml_cc1plus
所以我的机器上有gcc版本4.7和4.5。我不知道其他的是什么

您可以通过发送完整路径来指定版本号:

greg@greg-mint ~ $ gcc --version
gcc (Ubuntu/Linaro 4.7.2-2ubuntu1) 4.7.2
Copyright (C) 2012 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.

greg@greg-mint ~ $ /usr/bin/gcc-4.5 --version
gcc-4.5 (Ubuntu/Linaro 4.5.4-1ubuntu2) 4.5.4
Copyright (C) 2010 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.

greg@greg-mint ~ $ /usr/bin/gcc-4.7 --version
gcc-4.7 (Ubuntu/Linaro 4.7.2-2ubuntu1) 4.7.2
Copyright (C) 2012 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.
另一种方法是使用
find
,我建议您不要这样做。(请注意:在共享的机器上,这不一定是礼貌)


这将查找计算机上以gcc开头的所有文件。它将扫描整个磁盘,因此需要一段时间,并且您将影响系统上所有其他用户的性能(您已经说过“unix”和“University Server”可能会产生影响)。

这里有一个在Linux上运行的步骤,可能会在unix上运行

首先验证您是否有可用的
gcc

greg@greg-mint ~ $ gcc
gcc: fatal error: no input files
compilation terminated.
是的。我不喜欢我没有提供任何要编译的东西

如果您得到类似于
未找到命令gcc
未识别命令或文件:gcc
的内容,则可能存在问题

现在,找到
gcc
的位置:

greg@greg-mint ~ $ which gcc
/usr/bin/gcc
太好了。它在
/usr/bin/gcc
中,但这并没有告诉我们其他版本

让我们来了解一下:

greg@greg-mint ~ $ ls -l /usr/bin/gcc
lrwxrwxrwx 1 root root 7 Mar 28  2013 /usr/bin/gcc -> gcc-4.7
在我的机器(LinuxMint)上,它显示了一个符号链接。这意味着当我运行
gcc
命令时,它正在运行
/usr/bin/gcc-4.7

嗯。我猜它通常在
/usr/bin
中,所以,让我们看看是否还有其他内容:

greg@greg-mint ~ $ ls -l /usr/bin/gcc*
lrwxrwxrwx 1 root root       7 Mar 28  2013 /usr/bin/gcc -> gcc-4.7
-rwxr-xr-x 1 root root  275952 Jul  3  2012 /usr/bin/gcc-4.5
-rwxr-xr-x 1 root root  578808 Sep 22  2012 /usr/bin/gcc-4.7
-rwxr-xr-x 1 root root   22832 Sep 22  2012 /usr/bin/gcc-ar-4.7
-rwxr-xr-x 1 root root   22832 Sep 22  2012 /usr/bin/gcc-nm-4.7
-rwxr-xr-x 1 root root   22832 Sep 22  2012 /usr/bin/gcc-ranlib-4.7
-rwxr-xr-x 1 root root  220968 Oct  9  2012 /usr/bin/gccxml
-rwxr-xr-x 1 root root 8606464 Oct  9  2012 /usr/bin/gccxml_cc1plus
所以我的机器上有gcc版本4.7和4.5。我不知道其他的是什么

您可以通过发送完整路径来指定版本号:

greg@greg-mint ~ $ gcc --version
gcc (Ubuntu/Linaro 4.7.2-2ubuntu1) 4.7.2
Copyright (C) 2012 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.

greg@greg-mint ~ $ /usr/bin/gcc-4.5 --version
gcc-4.5 (Ubuntu/Linaro 4.5.4-1ubuntu2) 4.5.4
Copyright (C) 2010 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.

greg@greg-mint ~ $ /usr/bin/gcc-4.7 --version
gcc-4.7 (Ubuntu/Linaro 4.7.2-2ubuntu1) 4.7.2
Copyright (C) 2012 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.
另一种方法是使用
find
,我建议您不要这样做。(请注意:在共享的机器上,这不一定是礼貌)


这将查找计算机上以gcc开头的所有文件。它将扫描整个磁盘,因此需要一段时间,您将影响系统上所有其他用户的性能(您说过“unix”和“University Server”可能会产生影响)。

是的。提供要使用的版本的完整路径!谢谢你的回复。如何首先检查是否安装了多个版本?是。提供要使用的版本的完整路径!谢谢你的回复。如何首先检查是否安装了多个版本?谢谢@Chris。它在我本地的机器上工作。实际上,我正试图在我的大学服务器上检查这一点&它似乎已经被禁用,因为它在那里不工作。你知道另一种方法吗?谢谢@Chris。它在我本地的机器上工作。实际上,我正试图在我的大学服务器上检查这一点&它似乎已经被禁用,因为它在那里不工作。你会知道另一种方法吗?