我从命令行在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之间有什么区别?系统选择哪一个?
其中gcc和gcc的输出有什么区别?
我相信如果我了解这些,我将能够调试构建中的错误。
答案 0 :(得分:0)
“/ usr / bin / gcc”中的二进制文件可能只是一个别名。由于“哪个gcc”指向那个,所以请按照该别名找到您的默认系统gcc,如果我不得不猜测,则将其设置为gcc“4.4.5”。什么是4.4 /文件夹?
另外,我的猜测是gcc-4.4是另一个别名,可能是4.4.4或4.4 /文件夹中的bin。这些只是猜测,所以我解决这个问题的第一步是跟随它们,看看它们指向的位置。
答案 1 :(得分: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)命令的完整路径(所以可执行文件)。
答案 2 :(得分:0)
是的,肯定会显示两个gcc。你需要做的是,通过命令行安装gcc后,你要链接它。例如,对于c,首先必须删除cc1,然后使用绝对路径链接新的cc1。如需更多参考,请浏览此链接
http://buildall.wordpress.com/2011/04/20/installing-gcc-4-6-in-the-ubuntu-10-10/