2012-04-03 109 views
0

我目前已经安装了gcc4.7和gcc4.7-base等包,但GCC似乎仍然在使用4.6请致电在12.04上安装gcc4.7时,GCC没有从4.6切换到4.7

gcc --version 

如果我现在真的需要它,我可以编译源代码,但是我打算转换一些旧代码以使用C++ 11获得乐趣。如果任何人有任何建议如何从4.6切换到4.7告诉。

我跟着从这里指南:

https://askubuntu.com/questions/113291/installing-gcc-4-7

编辑:固定的问题,更新的链接/usr/bin/gcc-4.7

回答

2

尝试运行以下,看看GCC位于:

ls -l `which gcc` 

我会说,赔率是所有你可能需要做的是更新的链接(但后来我又不能检查,因为我现在还没有启动到Linux)

+0

我更新了/usr/bin/gcc-4.7的链接,现在它可以正常工作。感谢队友(和罗斯一样) – DubyaDubyaDubyaDot 2012-04-03 01:18:41

+0

为了减少像我这样的傻子对此的兴趣,请你说明如何执行这个*更新*,因为我不清楚哪个*链接*它是你指的是 – puk 2013-10-22 18:34:59

+0

以上命令会生成类似/ usr/bin/gcc - > gcc-2.6的内容。运行'rm/usr/bin/gcc',然后'ln -s gcc-2.7/usr/bin/gcc'。当然,还没有测试过这些命令,所以请自行承担风险 – 2013-10-24 21:28:28

1

只需将您的CC环境变量/usr/bin/gcc-4.7或任何它。或者,也许你的编译系统有一个不同的方式来选择使用哪个编译器。

+0

我的'CC'变量是空白的(我假设它从未设置过),如果我改变它为'/ usr/bin/gcc-4.7'或者“无论它是什么”,我会在哪里做这个改变?在'.bashrc'这样的启动文件中,在shell或者'configure'脚本或'makefile'中? – puk 2013-10-22 18:36:57

0

很可能很多为gcc 4.6编译的程序可能不适用于gcc 4.7。因此,您必须同时保持并同时根据情况使gcc4.7的链接有所不同。您可以编辑您的GCC文件是一个shell脚本:

#!/bin/sh 
if [ -n "$GCC_SIX" ]; 
then 
    exec /usr/bin/gcc-4.6 "[email protected]" 
else 
    exec /usr/bin/gcc-4.7 "[email protected]" 
fi 

现在,无论何时你发现不工作gcc4.7程序只需添加一个新的环境变量,你已经切换到gcc4.6当前执行。注意,对于多用户系统,这可以证明是一种生命保护。

+0

当您说“您可以编辑您的gcc文件为shell脚本”时,您指的是哪个gcc文件?这是一个系统特定的文件,或者只是基本而不是调用'foo.c'你调用'GCC_SIX = 0; foo.sh',它调用'exec /usr/bin/gcc-4.X foo.c' – puk 2013-10-22 18:39:27