【问题标题】:When installing gcc4.7 on 12.04, GCC doesn't switch from 4.6 to 4.7在 12.04 上安装 gcc4.7 时,GCC 不会从 4.6 切换到 4.7
【发布时间】:2012-04-03 01:02:58
【问题描述】:

我目前已经安装了 gcc4.7 和 gcc4.7-base 等软件包,但当我调用时 GCC 似乎仍在使用 4.6

gcc --version

如果我现在真的需要它,我可以编译源代码,但我计划转换一些旧代码以享受 C++11 的乐趣。如果有人对如何从 4.6 切换到 4.7 有任何建议,请告诉。

我按照这里的指南进行操作:

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

编辑:修复了问题,更新了指向 /usr/bin/gcc-4.7 的链接

【问题讨论】:

    标签: linux gcc ubuntu g++


    【解决方案1】:

    尝试运行以下命令查看 gcc 所在的位置:

    ls -l `which gcc`
    

    我想说的是,您可能需要做的就是更新链接(但由于目前我还没有启动到 Linux,所以我无法检查)

    【讨论】:

    • 我更新了指向 /usr/bin/gcc-4.7 的链接,现在它可以工作了。谢谢队友(和罗斯同胞一样)
    • 为了让像我这样的傻瓜更容易理解这一点,请您说明如何执行此更新,因为我不清楚哪个链接 你指的是
    • 上述命令将生成类似 /usr/bin/gcc -> gcc-2.6 的内容。运行“rm /usr/bin/gcc”,然后运行“ln -s gcc-2.7 /usr/bin/gcc”。当然,还没有测试过这些命令,所以使用风险自负
    【解决方案2】:

    您可以将您的 CC 环境变量设置为 /usr/bin/gcc-4.7 或其他任何值。或者,您的构建系统可能有不同的方式来选择要使用的编译器。

    【讨论】:

    • 我的 CC 变量是空白的(我认为它从未设置过),如果我将其更改为 /usr/bin/gcc-4.7 或“不管它是什么”,我将在哪里进行此更改?在像.bashrc 这样的启动文件中,在shell 中,或者一些configure 脚本或makefile?
    【解决方案3】:

    许多为 gcc 4.6 编译的程序可能不适用于 gcc 4.7。因此,您必须同时保留两者并根据情况使到 gcc4.7 的链接有所不同。您可以将 gcc 文件编辑为 shell 脚本:

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

    现在,每当您发现一个程序在 gcc4.7 上无法运行时,只需添加一个新的环境变量,您就已经切换到 gcc4.6 进行当前执行。请注意,对于多用户系统,这可以证明是救命稻草。

    【讨论】:

    • 当您说“您可以将您的 gcc 文件编辑为 shell 脚本”时,您指的是什么 gcc 文件?这是一个系统特定的文件,还是基本上不是调用foo.c,而是调用GCC_SIX=0; foo.sh,它调用exec /usr/bin/gcc-4.X foo.c
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多