我从命令行在我的
gcc
上安装了最新版本的 linux-x86
。 /usr/bin/
显示两个gcc
,即gcc
和gcc-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
。
我在
/usr/bin/
中找到的两个gcc有什么区别?系统正在挑选哪一个?
whereis gcc 和which gcc 的输出有什么区别?
我相信如果我理解这些,我将能够调试我的构建中的错误。
“/usr/bin/gcc”中的二进制文件可能只是一个别名。由于“which gcc”指向该 gcc,请按照该别名查找您的默认系统 gcc,如果我不得不猜测的话,它被设置为 gcc“4.4.5”。 4.4/文件夹里有什么?
另外,我的猜测是 gcc-4.4 是另一个别名,可能是 4.4.4 或 4.4/ 文件夹中的 bin。这些只是猜测,所以我解决这个问题的第一步是跟随它们并看看它们指向哪里。
我认为系统会选择回复
gcc -v
的版本。
也许您安装了多个 GCC 版本?或者您已经编译了一个需要使用特定 GCC 版本的软件?这可能是因为某些构建配置引用特定的 GCC 名称版本或使用 GCC 版本的指令细节,就像某些 Java 软件对 Java 虚拟机所做的那样。 Java 软件通常会安装其 JVM,而不管您是否已经安装了 JVM。
来自 http://www.linfo.org/whereis.html:
whereis 命令用于定位任何指定程序的二进制文件、源代码和在线手册页。
来自 http://linux.about.com/library/cmd/blcmdl1_which.htm:
which - 显示(shell)命令的完整路径(即可执行文件)。
是的,它肯定会显示两个 gcc。你要做的是通过命令行安装gcc后,你必须链接它。例如,对于 c 首先,您必须删除 cc1,然后使用绝对路径链接新的 cc1。如需更多参考,请访问此链接
http://buildall.wordpress.com/2011/04/20/installing-gcc-4-6-in-the-ubuntu-10-10/