0

gcclinux-x86从命令行安装了最新版本的。显示/usr/bin/两个gccs,即gccgcc-4.4。浏览了几个网站后,我导航到我的/usr/lib/gcc/i686-linux-gnu. 它包含一个文件夹4.4/和两个其他文件,4.4.4以及4.4.5.

当我使用gcc -v时,我得到

gcc 版本 4.4.5 (Ubuntu/Linaro 4.4.4-14ubuntu5.1)

whereis gcc节目

gcc: /usr/bin/gcc /usr/lib/gcc

哪个 gcc 显示/usr/bin/gcc

我在我的 中找到的两个 gcc 有什么区别/usr/bin/?系统接的是哪一个?

whereis gcc 和 which gcc 的输出有什么区别?

我相信如果我理解了这些,我将能够调试我的构建中的错误。

4

3 回答 3

0

我认为系统会选择回复的版本gcc -v。也许您安装了多个 GCC 版本?或者您已经编译了需要使用特定 GCC 版本的软件?这可能是因为某些构建配置引用特定的 GCC 名称版本或使用 GCC 版本的指令细节,就像某些 Java 软件对 Java 虚拟机所做的那样。Java 软件通常会安装它们的 JVM,而不管您是否已经安装了一个。

来自http://www.linfo.org/whereis.html

whereis 命令用于查找任何指定程序的二进制文件、源代码和在线手册页。

http://linux.about.com/library/cmd/blcmdl1_which.htm

其中 - 显示(shell)命令的完整路径(因此可执行文件)。

于 2012-07-18T06:30:37.577 回答
0

是的,它肯定会显示两个 gcc。你要做的是在通过命令行安装 gcc 之后你必须链接它。例如对于 c 首先你必须删除 cc1 然后用绝对路径链接新的 cc1。有关更多参考,请通过此链接
http://buildall.wordpress.com/2011/04/20/installing-gcc-4-6-in-the-ubuntu-10-10/

于 2012-07-18T11:09:31.270 回答
0

“/usr/bin/gcc”中的二进制文件可能只是一个别名。由于“which gcc”指向那个,请按照该别名查找您的默认系统 gcc,如果我不得不猜测,它被设置为 gcc“4.4.5”。4.4/ 文件夹中有什么?

另外,我的猜测是 gcc-4.4 是另一个别名,可能是 4.4.4 或 4.4/ 文件夹中的一个 bin。这些只是猜测,所以我解决这个问题的第一步是跟随他们,看看他们指向哪里。

于 2012-07-18T06:18:45.497 回答