如何使用 GCC 4.7 代替 4.6?

如何使用 GCC 4.7 代替 4.6?

我正在做一个项目,想使用 C 的一些 C11 特性。要使用这些特性,需要 GCC 4.7,所以我去了 synaptic 并查找了 4.7,找到了 gcc-4.7-base 软件包,所以我安装了它[1]。

因此,现在已经安装了 gcc-4.7-base,我希望能够使用 4.7,但是不行,当我gcc --version这样做时,它仍然显示 4.6.3,甚至更多,当我尝试直接调用 4.7(通过/usr/bin/gcc-4.7)时,它不存在,尽管gcc-4.6可执行文件确实存在。

如何“激活” GCC 4.7?我读过这里,你用做了一些疯狂的事情update-alternatives,但它对我来说不起作用,因为gcc-4.7可执行文件实际上并不存在于我的计算机上。

注意:1. 我还看到了 gcc-4.6-base,所以我想我会卸载它,但 synaptic 试图删除我已安装的每个软件包并安装 Java 运行时,所以出于显而易见的原因我决定不删除它。

答案1

以下对我有用。

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.6 60 --slave /usr/bin/g++ g++ /usr/bin/g++-4.6 
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.7 40 --slave /usr/bin/g++ g++ /usr/bin/g++-4.7 
sudo update-alternatives --config gcc

参考来源

答案2

二进制文件gcc位于gcc-X.Y包中,而不是gcc-X.Y-base。后者是gcc-X.Y或的依赖项libstdc++

基本上你应该简单地安装gcc-4.7然后gcc-4.7从你的 makefile 中调用它,或者使用install-alternatives使其成为默认值。

相关内容